先に明かす。 2026年1月にこの雑誌は、町のサッカーチームの会費をチャットとメモ帳で管理していた人が、週末の午後に自分用の道具を作った話を載せた。この現場は特定の団体ではない。 実際にそう回っている形をそのまま構成し、どこかは明かさない。以下はその形どおりに自分で作ったものだ。
元の記事の角度は良かった。要点は道具ではなく敷居だった — 我慢するか、エクセルに押し込むか、開発者の友人に頼むか。その三つの脇に「自分の必要を自分で作る」という第四の道ができたということ。
ところがあの記事は、見せると言ったものをひとつも見せなかった。 作ったという道具の画面0枚、定義0行、過程0段階。「開発者でない人が週末の午後に作れた」が唯一の主張なのに、それを支えるのが記述だけだった。
fieldの筋ではこれが特に致命的だ。この筋の存在理由が「あなたにもできる」という許しであり、許しは証拠がなければ広告だからだ。
何行かを数える
時間は測れない。後で書くが、私が作った時間は参考にならない。
代わりに大きさを測る。 作る人が実際に触るのが何行か。
what the maker edits: ui/pages/dues.json 38 lines, ui/app.json 7 lines
四十五行だ。 画面ひとつ(38行)とルート表(7行)。
その38行がどんな姿かを丸ごと見せることが、この記事で一番重要だ。抜粋ではなく画面の全部だ。
{
"type": "page",
"title": "Dues",
"initialState": { "rows": [], "paidCount": 0, "total": 0,
"collected": "", "owed": "", "notice": "" },
"content": {
"type": "center",
"child": {
"type": "linear", "direction": "vertical", "alignment": "center", "spacing": 14,
"children": [
{ "type": "text", "text": "APRIL DUES" },
{ "type": "text", "text": "{{paidCount}} of {{total}} paid" },
{ "type": "text", "text": "{{collected}} in · {{owed}} still out" },
{ "type": "box", "width": 460, "height": 230,
"child": {
"type": "list", "items": "{{rows}}",
"itemTemplate": {
"type": "linear", "direction": "horizontal",
"children": [
{ "type": "text", "text": "{{item.name}}" },
{ "type": "text", "text": "{{item.mark}}" }
]
}
} },
{ "type": "button", "label": "Jiwon paid",
"onTap": { "type": "tool", "tool": "dues.toggle",
"params": { "who": "Jiwon" } } },
{ "type": "text", "text": "{{notice}}" }
]
}
}
}
(上はスタイル属性を落としたものだ。実際のファイルは色と文字サイズが付いて38行だ。)
読める。 これがこの記事の主張の全部だ。プログラミングを習っていない人がこれを見て "APRIL DUES" を "5月の会費" に直せるか — たぶん直せる。{{paidCount}} of {{total}} paid が何を意味するか推測できるか — たぶん推測する。