City — быстрый справочник
Статус: Verified reads + parameterized lookup + verified lifecycle City.destroyCity() на протестированном baseline.
Примеры WBML 0.3.0:
int buildings = city.countBuildings();int warriors = city.countWarriors();int zones = city.countZones();Army army = city.getArmy();int loyalty = city.getCachedLoyalty();Culture culture = city.getCulture();Language language = city.getLanguage();Canonical owner source: CityManager.dict{value}.
Parameterized evidence из 0.4.0-fix2:
int bonfires = city.countBuildingsOfID("bonfire"); // observed result: 1var byId = city.getBuildingListOfID("bonfire"); // internal, count=1var byType = city.getBuildingListOfType("type_bonfire"); // internal, count=1long humanSubspecies = city.getSubspeciesId("human"); // observed result: 2Эти строки взяты из собственных dictionary keys города, а не из случайных полей того же типа.
Mutation и lifecycle
Заголовок раздела «Mutation и lifecycle»WBML 0.5.0 проверил обратимые scalar-транзакции для CityData.total_food_consumed, total_leaders, renown, total_births, total_deaths, total_kills.
WBML 0.6.0-fix5 проверил City.destroyCity() через закреплённые CityManager F:dict + Kingdom F:cities: manager 32→31, owner 6→5, registry cleanup, 50/50 stale reads, без reintroduction.
Полные детали City · Parameterized queries · Lifecycle evidence