| { |
| "schema": "plastique.crystalmix_mlp.v2", |
| "observation": { |
| "name": "crystal", |
| "version": 5, |
| "size": 1473, |
| "live_size": 1153, |
| "segments": { |
| "self": 0, |
| "opponent": 24, |
| "kit": 117, |
| "inventory": 577, |
| "crosshair": 604, |
| "fan": 635, |
| "terrain": 710, |
| "foe": 1034, |
| "crystals": 1087, |
| "blasts": 1129 |
| }, |
| "item_vocabulary": [ |
| "empty", |
| "sword", |
| "mace", |
| "obsidian", |
| "end_crystal", |
| "respawn_anchor", |
| "glowstone", |
| "totem", |
| "golden_apple", |
| "firework", |
| "elytra", |
| "chestplate", |
| "ender_pearl", |
| "axe", |
| "shield", |
| "wind_charge", |
| "crossbow", |
| "arrow", |
| "pickaxe", |
| "xp_bottle", |
| "splash_potion", |
| "helmet", |
| "leggings", |
| "boots", |
| "building_block", |
| "container", |
| "glowstone_dust", |
| "spear", |
| "bow", |
| "cobweb", |
| "utility", |
| "unknown" |
| ], |
| "item_count": 32, |
| "kit_layout": "item-major, 14 floats per item id: 9 hotbar occupancy, present, hotbar count, selected, offhand, inventory total" |
| }, |
| "actions": { |
| "name": "crystal", |
| "branches": { |
| "move": 9, |
| "jump": 2, |
| "sprint": 2, |
| "attack": 2, |
| "yaw": 11, |
| "pitch": 9, |
| "sneak": 2, |
| "use": 2, |
| "slot": 9, |
| "inventory": 4 |
| }, |
| "total_logits": 52, |
| "yaw_buckets": [ |
| -45, |
| -20, |
| -10, |
| -4, |
| -1, |
| 0, |
| 1, |
| 4, |
| 10, |
| 20, |
| 45 |
| ], |
| "pitch_buckets": [ |
| -20, |
| -8, |
| -3, |
| -1, |
| 0, |
| 1, |
| 3, |
| 8, |
| 20 |
| ] |
| }, |
| "model": { |
| "trunk": [ |
| 512, |
| 512 |
| ], |
| "layernorm": true |
| }, |
| "training": { |
| "self_examples": "ground_truth", |
| "opponent_examples": "visible-state partial", |
| "opponent_weight": 0.35 |
| }, |
| "compatibility": { |
| "breaks": "crystal_obs_v3 / 929", |
| "reason": "v3 resolved 32 of 44 recorded item ids to air and encoded the hotbar slot-major; v4 widens the vocabulary to 32 identities and transposes the kit block so item identity is hotbar-order invariant.", |
| "recorder_meta_declares": "crystal_obs_v3 / 929 - the telemetry mod still reports the v3 contract and must be updated to match before this policy is served live.", |
| "causal_lag": "sneaking, selected_slot and the resulting held item are fed from the previous tick. The recorder snapshots state after the tick's action, so the live server must apply the same one-tick lag on these three fields or the policy sees an input distribution it was never trained on." |
| } |
| } |