1// Minimal playable automata proof. The fox carries TICK through its noun rule;2// the host engine owns movement, pushes, collisions, and the win condition.3const { word, object, level } = require('@miau/engine');45module.exports = {6 manifest: {7 id: 'automata-example',8 name: 'Clockwork Fox',9 version: '1.0.0',10 engine: 1,11 author: 'Miau examples',12 },13 vocabulary: ['MIAU', 'FENN', 'FLAG'],14 palette: {15 MIAU: '🐈',16 FENN: '🦊',17 FLAG: '🚩',18 },19 levels: [level(10, 5, [20 word('MIAU', 0, 0, 'miau-subject'), word('IS', 1, 0, 'miau-is'), word('YOU', 2, 0, 'miau-you'),21 word('FLAG', 4, 0, 'flag-subject'), word('IS', 5, 0, 'flag-is'), word('WIN', 6, 0, 'flag-win'),22 word('FENN', 0, 1, 'fenn-subject'), word('IS', 1, 1, 'fenn-is'), word('TICK', 2, 1, 'fenn-tick'),23 object('MIAU', 0, 3, 'miau-player'),24 object('FENN', 4, 3, 'fenn-fox'),25 object('FLAG', 8, 3, 'flag-goal'),26 ], {27 id: 'fox-keeps-time',28 title: 'The fox keeps time',29 hint: 'Walk MIAU to FLAG while FENN repeats its little patrol.',30 automata: [{31 id: 'fenn-clock',32 property: 'TICK',33 pattern: [34 { action: 'move', dx: -1, dy: 0, cue: '🦊', sound: 'tick' },35 { action: 'move', dx: -1, dy: 0 },36 { action: 'wait', cue: '…' },37 { action: 'move', dx: 1, dy: 0, sound: 'tick' },38 { action: 'move', dx: 1, dy: 0 },39 { action: 'wait' },40 ],41 }],42 })],43};