class Unit extends UnitSnapshot {

    public static Unit from(Raw.Unit sc2ApiUnit) {
        require("sc2api unit", sc2ApiUnit);
        return new Unit(sc2ApiUnit);
    }

    private  Unit(Raw.Unit sc2ApiUnit);
    private  Unit(Unit original, UnaryOperator<Ability> generalize);

}