2422 lines
70 KiB
JSON
2422 lines
70 KiB
JSON
{
|
|
"id": "MP-01",
|
|
"linked_original_delivery": "P06-01",
|
|
"status": "proposed_unapproved",
|
|
"applied_to_product": false,
|
|
"counting_scope": "approval artifact only; excluded from original 88; not acceptance of P06-01",
|
|
"base_commit": "0bdc4886cf631879792e0c0a873ecf97b98a64ea",
|
|
"recommended": {
|
|
"initial_amount": 100,
|
|
"storage_capacity": 300,
|
|
"world_tree_generation_per_interval": 20,
|
|
"interval_minutes": 10,
|
|
"provenance": "candidate_unapproved",
|
|
"unit": "integer Mana per 10 game minutes; stock in Mana",
|
|
"demand_conversion": "D=sum(instance_count * observed_maintenance_mana); candidate conversion of allocation demand to interval energy, not existing consumption",
|
|
"demand_policy": "completed retained facilities including closed/unpowered facilities; no depletion waiver; destroyed/demolished excluded",
|
|
"furnace": {
|
|
"input_quantity": 1,
|
|
"input_unit": "eligible generic slave actor",
|
|
"output_quantity": 100,
|
|
"output_unit": "Mana",
|
|
"eligibility": "owned generic nonunique slave only; exclude heroes, rivals, unique/irreplaceable/protected/not-sellable actors, visitors, employees, detained unclassified actors; uncertain classification rejects",
|
|
"footprint": "6x3 BACK underground",
|
|
"timing": "one explicitly confirmed queued transaction per furnace at next 10-minute boundary; no automatic input",
|
|
"atomicity": "revalidate eligibility, ownership, furnace readiness and headroom >=100; actor removal, Mana credit and immutable transaction receipt commit together or none",
|
|
"history": "persist transaction id, actor id and eligibility evidence, furnace id, boundary, before/after Mana, input/output and committed status in same save",
|
|
"interruption": "before commit cancel without removal; after commit restore receipt and never repeat; conflicting retry rejected; depleted furnace cannot initiate until natural generation restores power",
|
|
"actual_actor_consumption": false
|
|
}
|
|
},
|
|
"alternatives": [
|
|
{
|
|
"id": "conservative",
|
|
"initial_amount": 100,
|
|
"storage_capacity": 200,
|
|
"world_tree_generation_per_interval": 10,
|
|
"interval_minutes": 10
|
|
},
|
|
{
|
|
"id": "generous",
|
|
"initial_amount": 200,
|
|
"storage_capacity": 600,
|
|
"world_tree_generation_per_interval": 40,
|
|
"interval_minutes": 10
|
|
}
|
|
],
|
|
"demand_catalog": [
|
|
{
|
|
"definition_id": "adult_private_room",
|
|
"path": "data/facilities/adult_private_room.tres",
|
|
"observed_maintenance_mana": 3,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "cafeteria",
|
|
"path": "data/facilities/cafeteria.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "black_market",
|
|
"path": "data/facilities/expansion/black_market.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "chapel",
|
|
"path": "data/facilities/expansion/chapel.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "omitted; FacilityDefinition default 0",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "cleaning_room",
|
|
"path": "data/facilities/expansion/cleaning_room.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "omitted; FacilityDefinition default 0",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "clinic",
|
|
"path": "data/facilities/expansion/clinic.tres",
|
|
"observed_maintenance_mana": 3,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "cold_storage",
|
|
"path": "data/facilities/expansion/cold_storage.tres",
|
|
"observed_maintenance_mana": 4,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "general_store",
|
|
"path": "data/facilities/expansion/general_store.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "omitted; FacilityDefinition default 0",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "guild_counter",
|
|
"path": "data/facilities/expansion/guild_counter.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "laundry",
|
|
"path": "data/facilities/expansion/laundry.tres",
|
|
"observed_maintenance_mana": 3,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "maintenance_workshop",
|
|
"path": "data/facilities/expansion/maintenance_workshop.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "mana_control_room",
|
|
"path": "data/facilities/expansion/mana_control_room.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "premium_room",
|
|
"path": "data/facilities/expansion/premium_room.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "private_bath",
|
|
"path": "data/facilities/expansion/private_bath.tres",
|
|
"observed_maintenance_mana": 4,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "secret_tavern",
|
|
"path": "data/facilities/expansion/secret_tavern.tres",
|
|
"observed_maintenance_mana": 3,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "staff_dormitory",
|
|
"path": "data/facilities/expansion/staff_dormitory.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "tea_lounge",
|
|
"path": "data/facilities/expansion/tea_lounge.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "underground_guest_room",
|
|
"path": "data/facilities/expansion/underground_guest_room.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "vip_private_salon",
|
|
"path": "data/facilities/expansion/vip_private_salon.tres",
|
|
"observed_maintenance_mana": 5,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "waste_processing",
|
|
"path": "data/facilities/expansion/waste_processing.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "guest_corridor",
|
|
"path": "data/facilities/guest_corridor.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "guest_elevator",
|
|
"path": "data/facilities/guest_elevator.tres",
|
|
"observed_maintenance_mana": 5,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "guest_stairs",
|
|
"path": "data/facilities/infrastructure/guest_stairs.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "service_stairs",
|
|
"path": "data/facilities/infrastructure/service_stairs.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "kitchen",
|
|
"path": "data/facilities/kitchen.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "massage_room",
|
|
"path": "data/facilities/massage_room.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "public_bath",
|
|
"path": "data/facilities/public_bath.tres",
|
|
"observed_maintenance_mana": 4,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "reception",
|
|
"path": "data/facilities/reception.tres",
|
|
"observed_maintenance_mana": 1,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "infirmary",
|
|
"path": "data/facilities/rescue/infirmary.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "omitted; FacilityDefinition default 0",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "security_station",
|
|
"path": "data/facilities/security_station.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "service_corridor",
|
|
"path": "data/facilities/service_corridor.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "service_elevator",
|
|
"path": "data/facilities/service_elevator.tres",
|
|
"observed_maintenance_mana": 6,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "staff_door",
|
|
"path": "data/facilities/staff_door.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "staff_waiting_room",
|
|
"path": "data/facilities/staff_waiting_room.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "standard_room",
|
|
"path": "data/facilities/standard_room.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "tavern",
|
|
"path": "data/facilities/tavern.tres",
|
|
"observed_maintenance_mana": 2,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"definition_id": "warehouse",
|
|
"path": "data/facilities/warehouse.tres",
|
|
"observed_maintenance_mana": 0,
|
|
"observation": "explicit",
|
|
"provenance": "current_implementation"
|
|
}
|
|
],
|
|
"demand_catalog_scope": {
|
|
"resource_count": 37,
|
|
"one_each_sum": 63,
|
|
"registration_and_operation_not_assumed": true,
|
|
"unknown_original_facilities": [
|
|
"VIPスイート",
|
|
"ドミトリー",
|
|
"レストラン",
|
|
"屋台",
|
|
"カジノ",
|
|
"闘技場",
|
|
"高級ソープ",
|
|
"SM拷問室",
|
|
"覗き部屋",
|
|
"地下牢",
|
|
"マナ炉",
|
|
"ワープ",
|
|
"魔法砲台"
|
|
],
|
|
"unknown_demand": "unknown, never zero; not a full-game prediction; mana_control_room is not the original furnace"
|
|
},
|
|
"ordering": {
|
|
"approval": "D05 pending",
|
|
"observed": "APPLY_COMMANDS -> TIME_BOUNDARIES -> MANA -> CONSTRUCTION -> LOGISTICS -> FACILITY_COMPLETION -> VITALS_AND_ENVIRONMENT -> INCIDENTS_AND_EVENTS -> FACILITY_QUEUES -> AI_DECISIONS -> PUBLISH_SNAPSHOT",
|
|
"recommended": "retain existing phases; at MANA boundary snapshot inputs, stage natural generation and eligible furnace transaction, calculate reserve once, allocate network once, project global zero gate, commit receipt before dependent phases",
|
|
"boundaries": "00:00 existing ownership-based Gold upkeep and settlement timing retained; 06:00/18:00 shift boundary retained. Power change affects subsequent logistics/service completion/queues; no charges or actor departure for uncompleted service. EV/cargo pause in place, retain ids/load/route; resume after restored power without duplicate delivery. Cross-boundary in-flight disposition requires D05 approval.",
|
|
"zero": "after==0 stops all facilities including zero-demand ones; world tree natural recovery is external to stopped facilities; next boundary generation pays standing demand first; resume only after>0 and local supply valid",
|
|
"replay": "persist minute, input snapshot/hash, full flow, network projection and furnace receipts; identical replay no second mutation/events; conflicting or backwards replay reject; catch up every 10-minute boundary, never one aggregate period"
|
|
},
|
|
"legacy_zero": {
|
|
"observed": "GameState restore accepts nonnegative resource values including 0; Runtime projects reserve>0 gate; missing mana get_resource returns 0. No approved stock capacity or energy rate migration implied by network snapshot version 1 or save format versions 1/2.",
|
|
"recommended": "explicit versioned domain migration preview and verified backup; explicit old mana=0 stays 0 and stopped, never full or unlimited; positive stock preserved only if <= approved capacity; missing/ambiguous/noninteger/negative/overcapacity reject without changing original or live state",
|
|
"new_save": "approved new stock schema must persist capacity, amount, last boundary/flow and receipts; numeric domain version and source-version applicability need separate approval",
|
|
"recovery": "0 with restored world supply resumes only when boundary after>0; no offline generation unless separately approved"
|
|
},
|
|
"open_decisions": [
|
|
"D04: approve candidate initial/capacity/rate/period and maintenance conversion; no original numeric mandate",
|
|
"D05: boundary completion/cost, EV/cargo pause/resume and cross-midnight order remain unapproved",
|
|
"Approve furnace eligibility predicate, one actor ->100 Mana, timing/headroom rejection, atomic save receipts; actor classifications must be explicit before implementation",
|
|
"Approve legacy domain schema/version/applicability and missing/overcapacity rejection",
|
|
"Unknown 13 original facilities demand and runtime instance counts; no whole-game forecast",
|
|
"Separate network output/flow capacities from energy accounting; do not count reserve/network storage twice"
|
|
],
|
|
"source_pins": [
|
|
{
|
|
"path": "autoload/game_state.gd",
|
|
"sha256": "cf0e884910220e54c56b5875983e53de439af9d893be1e1b65c2121d2a30722f",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "autoload/simulation_runtime.gd",
|
|
"sha256": "d52a995ae715542bbc550f68d35889540658275d12e04ae0b21ac276f5843f39",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/adult_private_room.tres",
|
|
"sha256": "d8501586416b5c57a8b3b3b2afd1c0143428d8a4fa1df7112e995bd36649df6d",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/cafeteria.tres",
|
|
"sha256": "86d540fe2d78b9dcdbe5a0af6e4a001f4cec54934636ed01deb25a943c79128a",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/black_market.tres",
|
|
"sha256": "c209d734c82487f6df4c03714618865d6a5f1d2cf991dc0056fe4bbad8f03a42",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/chapel.tres",
|
|
"sha256": "9b30a7c51712e7bb99c17870d1f03e3429ea9279851d88284545bb2eb5042fcb",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/cleaning_room.tres",
|
|
"sha256": "ae366cf67cbf117db7989c6b76092eb5a65229b93d35999a40d19b8260f95ad8",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/clinic.tres",
|
|
"sha256": "339cf22c68d7ab3cb1514b9e8d2ea63dc0772fe93918d70767c11cf7b6ee0e16",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/cold_storage.tres",
|
|
"sha256": "1aac824147b52b41e124d2ab2ce63c3bac58de2ec7fc447a5806a1cf9fa9ad99",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/general_store.tres",
|
|
"sha256": "76872e0375648b43f05fdc5581ccabe4aa6a166674c3b523980dd1cf0b6e6dc1",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/guild_counter.tres",
|
|
"sha256": "93e8736da4aab8a17b1c8e7831c9a7b8de7f32d0ec251aa9aa5c8cf859c8fd7b",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/laundry.tres",
|
|
"sha256": "2518ea2e5da12cf4f2997502bf50f00dd8145caca153fb3486b44b99881fdab4",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/maintenance_workshop.tres",
|
|
"sha256": "8bd10332a9f45a252febdc626f22f90507317fb4cff5b18b2526aacd1f1a176b",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/mana_control_room.tres",
|
|
"sha256": "55e4c52a049ff61ddf3d081ccb990a8572b64bc7cf37d3a0d52ca5a08cc32f25",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/premium_room.tres",
|
|
"sha256": "6665090e041f36df5809314cd171be228a94bf77d7e93f5b70be648db4705d98",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/private_bath.tres",
|
|
"sha256": "241b807e7fa3a1b9dc4bda0d2495e637155cdaea89a4234e37a121f00098499c",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/secret_tavern.tres",
|
|
"sha256": "f0a1372931078fa0f93dd5b9cec6df6b137975479aa706633fdf6a9be4cf1f62",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/staff_dormitory.tres",
|
|
"sha256": "8d7c7cd6dfe98d137f7fef62e35eb31f82f1ca282216a40df54ac81728101271",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/tea_lounge.tres",
|
|
"sha256": "77d1ace36c5e84f80c0e6d563ae973c7ff1cd12b56956afd4895cdcdd5771a67",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/underground_guest_room.tres",
|
|
"sha256": "cdfd0f8cd21812a9972485926dff27daaa6718af16aac1651894728b087bef9e",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/vip_private_salon.tres",
|
|
"sha256": "1c94a7a70393262fba82112c3f4a0cb67ad22728664f5ca408f450049d3657a7",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/expansion/waste_processing.tres",
|
|
"sha256": "9954855c7a07e425376a220c589989beb6ec95da3c5331316ef3615a60b45f1d",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/guest_corridor.tres",
|
|
"sha256": "d77ccf267e20a26ed70527d29e8d54e6fcab1df213f02d5a4e28ead4f705276b",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/guest_elevator.tres",
|
|
"sha256": "ad4fb3c439ac4ed90fe52f07e29ed7b4ff654c54d1c400c7c8e226da77127af7",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/infrastructure/guest_stairs.tres",
|
|
"sha256": "757c687b1ebe2a3f237fb28092cd5f01591f15b2bcd1b4e639042a24635a92c6",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/infrastructure/service_stairs.tres",
|
|
"sha256": "637217d867bcc99669d27c54b6d2c391c82a4a17356ab9a80c897ccaee38622c",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/kitchen.tres",
|
|
"sha256": "38197aa8a3e90c03a82e9ccdc88bb444af4eeb0349c41a39e0bdd7b188e7d5d3",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/massage_room.tres",
|
|
"sha256": "75ecf845fb3cfa8d3150f6b0dc90e901953469af512611384b70cc4878d21e85",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/public_bath.tres",
|
|
"sha256": "8ec259f48ed75c8ab2e5154a1caccf19f6be04331adbe774b877f0a2d8b2f778",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/reception.tres",
|
|
"sha256": "bed3de120a0e98c539771d1bb189111d095712f8ae25dfdf7cb2983efc0dee9f",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/rescue/infirmary.tres",
|
|
"sha256": "c3e861533971e369068ae9e42f71b660fa4ab3893c7c1f798fc367893befd943",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/security_station.tres",
|
|
"sha256": "69f3f518df7714d00c8e954e9c7405aa44b683dd274181cc3da832cc956815b3",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/service_corridor.tres",
|
|
"sha256": "5d79fbde201d657740efcba924f595bd7075e069b344d708e424dbebbdc2f254",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/service_elevator.tres",
|
|
"sha256": "35d552d5b96065413feccb50847e3cd7173e673896ce65afba238f90abc25132",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/staff_door.tres",
|
|
"sha256": "a993058bfd809ccdbbb9a61b9850259d7bf6e60003e57ccfa3972f6c29170752",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/staff_waiting_room.tres",
|
|
"sha256": "5c7a2f7f7c508102c4ee89401ad6348191b57d1ff65538acb9d450e464a3a46f",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/standard_room.tres",
|
|
"sha256": "89f0a3a861d66afa4c1338ff1ec919685cf338b93b8da9a2387ce85e7e5bc336",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/tavern.tres",
|
|
"sha256": "eb494ae6ab0d1b9e88ae0a38944609702e43c81a370a29cfb030af9ae46f523c",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "data/facilities/warehouse.tres",
|
|
"sha256": "d0fcf0528da66da7b354ab5efaafe2483a7a76e05b324db255700ef73cdfc791",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "docs/plans/original-completion-2026-09-29/execution/CURRENT_FACILITY_AUDIT.md",
|
|
"sha256": "cb0fedecc8006bfdb4aed97eb75dfdbae54e44dee4cf36c9149f8c99246008b8",
|
|
"provenance": "historical_audit_not_current_acceptance"
|
|
},
|
|
{
|
|
"path": "docs/plans/original-completion-2026-10-02/decisions.json",
|
|
"sha256": "ad0673051b0fa601e525f05128e0b11e2dddd9d4bae6a3e0170bbf47da35efe9",
|
|
"provenance": "decision_register"
|
|
},
|
|
{
|
|
"path": "docs/spec/acceptance/P06-01.json",
|
|
"sha256": "823db2a3b74f1582b1c23b2273e3b8262f679f4d5e6c18ad93757375df1d19ca",
|
|
"provenance": "original_or_task_contract"
|
|
},
|
|
{
|
|
"path": "docs/spec/acceptance/P06-mana-proposal.json",
|
|
"sha256": "7bc73267db99c06dba7a897d3d6377919c0572acba1057a894accd0afcf1adc4",
|
|
"provenance": "original_or_task_contract"
|
|
},
|
|
{
|
|
"path": "docs/traceability/original/BASELINE.txt",
|
|
"sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
|
|
"provenance": "original_or_task_contract"
|
|
},
|
|
{
|
|
"path": "scripts/core/definition_registry.gd",
|
|
"sha256": "e2ce5e0512a92fec6989e1bb5f0e7da1dbb50bd9ee67a07b4624fdc8bc65814f",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/core/save_migration_registry.gd",
|
|
"sha256": "22ac2cce07a02d1a2a9ac2109e7a0ecf9a0fbe675df4dc9d5249aa9ab3583f98",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/core/save_service.gd",
|
|
"sha256": "0c158d3e6ee693b89814bf232c954e4757c5ff91dc9df03bb322c3e593e73617",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/core/simulation_kernel.gd",
|
|
"sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/data/facility_definition.gd",
|
|
"sha256": "e90d56f7eab69c2a75238de465925c1c6df57ee6d44b3b81e7f6fcfd069af0a1",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/mana/mana_network_service.gd",
|
|
"sha256": "96f195cf2a28b0966d12cd7c6fab86d13eae97c8342d07d70f52e598fbf49af9",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/mana/mana_power_projection.gd",
|
|
"sha256": "2026467960e857349bcb18fb97b7753189be5f2de2be91a17e73e90146eba69e",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "scripts/mana/mana_reserve_balance.gd",
|
|
"sha256": "cd462c279d37cc297466b64d9cf3fd71870df9508c1ff5f7189e22ddbdbef4b3",
|
|
"provenance": "current_implementation"
|
|
},
|
|
{
|
|
"path": "tests/s2/test_mana_reserve_balance.gd",
|
|
"sha256": "07fe5f10e665cac3c8aa1b12e0c71878ffccc6d4b409250b317135345e3c8a05",
|
|
"provenance": "fixture_not_approved_balance"
|
|
}
|
|
],
|
|
"comparisons": [
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "low",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 118,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 118,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 136,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 136,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 154,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 154,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 172,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 172,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 190,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 190,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 208,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 208,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 226,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 226,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 244,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 244,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 262,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 262,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 280,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 280,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 298,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 298,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 16,
|
|
"after": 300,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 300,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "normal",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 104,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 104,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 108,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 108,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 112,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 112,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 116,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 116,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 120,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 120,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 124,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 124,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 128,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 128,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 132,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 132,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 136,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 136,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 140,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 140,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 144,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 144,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 148,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 148,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "excess",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 63,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 57,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 57,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 14,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 14,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 34,
|
|
"shortage": 29,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 63,
|
|
"consumed": 20,
|
|
"shortage": 43,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
}
|
|
],
|
|
"result_amount": 0,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "zero",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 0,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 4,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 4,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "capacity",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 300,
|
|
"generation": 20,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 18,
|
|
"after": 300,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 300,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "loss_and_return",
|
|
"period_minutes": 30,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 84,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 84,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 68,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 68,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 72,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 72,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "recommended",
|
|
"scenario": "same_minute_replay",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 20,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 104,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 104,
|
|
"replay": "same boundary and identical inputs: return stored receipt without changes; conflicting inputs: reject atomically"
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "low",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 108,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 108,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 116,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 116,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 124,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 124,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 132,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 132,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 140,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 140,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 148,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 148,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 156,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 156,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 164,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 164,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 172,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 172,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 180,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 180,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 188,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 188,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 196,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 196,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "normal",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 94,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 94,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 88,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 88,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 82,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 82,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 76,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 76,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 70,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 70,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 64,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 64,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 58,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 58,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 52,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 52,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 46,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 46,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 40,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 40,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 34,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 34,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 28,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 28,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "excess",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 63,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 47,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 47,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 57,
|
|
"shortage": 6,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 63,
|
|
"consumed": 10,
|
|
"shortage": 53,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
}
|
|
],
|
|
"result_amount": 0,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "zero",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 0,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 10,
|
|
"shortage": 6,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
}
|
|
],
|
|
"result_amount": 0,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "capacity",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 10,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 8,
|
|
"after": 200,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 200,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "loss_and_return",
|
|
"period_minutes": 30,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 84,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 84,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 68,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 68,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 62,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 62,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "conservative",
|
|
"scenario": "same_minute_replay",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 100,
|
|
"generation": 10,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 94,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 94,
|
|
"replay": "same boundary and identical inputs: return stored receipt without changes; conflicting inputs: reject atomically"
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "low",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 238,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 238,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 276,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 276,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 314,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 314,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 352,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 352,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 390,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 390,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 428,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 428,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 466,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 466,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 504,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 504,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 542,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 542,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 580,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 580,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 18,
|
|
"after": 600,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 600,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 38,
|
|
"after": 600,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 600,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "normal",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 224,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 224,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 248,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 248,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 272,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 272,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 296,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 296,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 320,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 320,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 344,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 344,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 368,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 368,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 392,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 392,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 416,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 416,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 440,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 440,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 464,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 464,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 488,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 488,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "excess",
|
|
"period_minutes": 120,
|
|
"inputs": {
|
|
"demand_per_interval": 63,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 177,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 177,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 154,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 154,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 131,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 390,
|
|
"to_minute": 400,
|
|
"before": 131,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 108,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 400,
|
|
"to_minute": 410,
|
|
"before": 108,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 85,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 410,
|
|
"to_minute": 420,
|
|
"before": 85,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 62,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 420,
|
|
"to_minute": 430,
|
|
"before": 62,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 39,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 430,
|
|
"to_minute": 440,
|
|
"before": 39,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 63,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 16,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 440,
|
|
"to_minute": 450,
|
|
"before": 16,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 56,
|
|
"shortage": 7,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 450,
|
|
"to_minute": 460,
|
|
"before": 0,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 40,
|
|
"shortage": 23,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 460,
|
|
"to_minute": 470,
|
|
"before": 0,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 40,
|
|
"shortage": 23,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
},
|
|
{
|
|
"from_minute": 470,
|
|
"to_minute": 480,
|
|
"before": 0,
|
|
"generation": 40,
|
|
"demand": 63,
|
|
"consumed": 40,
|
|
"shortage": 23,
|
|
"overflow": 0,
|
|
"after": 0,
|
|
"global_stop": true
|
|
}
|
|
],
|
|
"result_amount": 0,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "zero",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 0,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 24,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 24,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "capacity",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 2,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 600,
|
|
"generation": 40,
|
|
"demand": 2,
|
|
"consumed": 2,
|
|
"shortage": 0,
|
|
"overflow": 38,
|
|
"after": 600,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 600,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "loss_and_return",
|
|
"period_minutes": 30,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 184,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 370,
|
|
"to_minute": 380,
|
|
"before": 184,
|
|
"generation": 0,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 168,
|
|
"global_stop": false
|
|
},
|
|
{
|
|
"from_minute": 380,
|
|
"to_minute": 390,
|
|
"before": 168,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 192,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 192,
|
|
"replay": null
|
|
},
|
|
{
|
|
"model": "generous",
|
|
"scenario": "same_minute_replay",
|
|
"period_minutes": 10,
|
|
"inputs": {
|
|
"demand_per_interval": 16,
|
|
"instance_mix": "low: cafeteria x1; normal: cafeteria,kitchen,public_bath,guest_elevator,reception,security_station x1 each; excess: all 37 definitions x1 including definition-only resources"
|
|
},
|
|
"flows": [
|
|
{
|
|
"from_minute": 360,
|
|
"to_minute": 370,
|
|
"before": 200,
|
|
"generation": 40,
|
|
"demand": 16,
|
|
"consumed": 16,
|
|
"shortage": 0,
|
|
"overflow": 0,
|
|
"after": 224,
|
|
"global_stop": false
|
|
}
|
|
],
|
|
"result_amount": 224,
|
|
"replay": "same boundary and identical inputs: return stored receipt without changes; conflicting inputs: reject atomically"
|
|
}
|
|
],
|
|
"formula": {
|
|
"available": "B+G+F",
|
|
"consumed": "min(B+G+F,D)",
|
|
"shortage": "D-consumed",
|
|
"overflow": "max(0,B+G+F-consumed-C)",
|
|
"after": "min(C,B+G+F-consumed)",
|
|
"period": "10 game minutes; 120-minute samples have 12 sequential boundaries; F=0 in comparisons",
|
|
"network": "local allocation still independently required; stock is accounted once globally, not summed with network stores"
|
|
},
|
|
"provenance": {
|
|
"original": "BASELINE 9.1 depletion; 10.6 furnace; 6.1/6.5 unique protection; no numerical balance",
|
|
"implementation": "GameState stock100; Runtime network source100; maintenance_mana allocation demand every10 game minutes, not reserve debit; reserve helper is caller-driven and not wired into periodic Runtime stock",
|
|
"fixture": "test_mana_reserve_balance: initial7/capacity10 at360, generation5/demand8 at370 ->4; purely test inputs",
|
|
"candidate": "recommended and alternatives are new unapproved design values; no product writes"
|
|
},
|
|
"validation": "static source reading and arithmetic only; formal proposal-consistency and independent review reserved for Runner"
|
|
}
|