OSDN Git Service

work
authoryasushiito <yas@pen-chan.jp>
Thu, 12 Dec 2013 23:52:05 +0000 (08:52 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 12 Dec 2013 23:52:05 +0000 (08:52 +0900)
app/assets/javascripts/application.js
app/assets/javascripts/configurations.js.coffee.erb
app/assets/javascripts/configurations2.js.coffee.erb [new file with mode: 0644]
app/assets/javascripts/panels.js.coffee
app/helpers/application_helper.rb
app/models/writing_format.rb
app/views/panels/_body.html.erb
app/views/panels/_form.html.erb
lib/manifest/list.rb
lib/manifest/profiler.rb
public/manifest.json

index 5d00b9f..d80f0c0 100644 (file)
@@ -14,6 +14,7 @@
 //= require underscore
 //= require backbone
 //= require configurations
+//= require configurations2
 //= require pettanr_editor
 //= require pettanr_sheeter
 //= require writing_formats
index bd5f9a9..50e92a0 100644 (file)
       },\r
     },\r
   },\r
-  models: {\r
-    Scroll: 'scroll',\r
-    scroll: {\r
-      class_name: 'Scroll',\r
-      table_name: 'scrolls',\r
-      associations: {\r
-        belongs_to: {\r
-          author: {\r
-            id_column: 'author_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          scroll_panels: {\r
-            foreign_key: 'scroll_id',\r
-            model: 'scroll_panel',\r
-          }, \r
-          panels: {\r
-            through: 'scroll_panel',\r
-            foreign_key: 'scroll_id'\r
-            model: 'panel',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        title: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        description: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        visible: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'scroll_visible_items',\r
-          },\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        list: {\r
-          name: 'public'\r
-        },\r
-        caption: {\r
-          type: 'column',\r
-          name: 'title'\r
-        },\r
-      },\r
-    },\r
-    ScrollPanel: 'scroll_panel',\r
-    scroll_panel: {\r
-      class_name: 'ScrollPanel',\r
-      table_name: 'scroll_panels',\r
-      associations: {\r
-        belongs_to: {\r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-          scroll: {\r
-            id_column: 'scroll_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        scroll_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-    },\r
-    Comic: 'comic',\r
-    comic: {\r
-      class_name: 'Comic',\r
-      table_name: 'comics',\r
-      associations: {\r
-        belongs_to: {\r
-          author: {\r
-            id_column: 'author_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          stories: {\r
-            foreign_key: 'comic_id'\r
-            model: 'story',\r
-          }, \r
-        },\r
-        has_many_through: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        title: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        description: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        visible: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'comic_visible_items',\r
-          },\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'title'\r
-        },\r
-      },\r
-    },\r
-    Story: 'story',\r
-    story: {\r
-      class_name: 'Story',\r
-      table_name: 'stories',\r
-      associations: {\r
-        belongs_to: {\r
-          comic: {\r
-            id_column: 'comic_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          story_sheets: {\r
-            foreign_key: 'story_id',\r
-            list_method: 'list_by_story',\r
-          }, \r
-          sheets: {\r
-            through: 'story_sheets',\r
-            foreign_key: 'story_id'\r
-            list_method: 'list_by_story',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        comic_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        title: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        description: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        visible: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'story_visible_items',\r
-          },\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'method',\r
-          name: 'title_with_t',\r
-        },\r
-      },\r
-    },\r
-    StorySheet: 'story_sheet',\r
-    story_sheet: {\r
-      class_name: 'StorySheet',\r
-      table_name: 'story_sheets',\r
-      associations: {\r
-        belongs_to: {\r
-          story: {\r
-            id_column: 'story_id'\r
-          }, \r
-          sheet: {\r
-            id_column: 'sheet_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        story_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        sheet_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    Sheet: 'sheet',\r
-    sheet: {\r
-      class_name: 'Sheet',\r
-      table_name: 'sheets',\r
-      associations: {\r
-        belongs_to: {\r
-          author: {\r
-            id_column: 'author_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          story_sheets: {\r
-            foreign_key: 'story_id',\r
-            list_method: 'list_by_sheet',\r
-          }, \r
-          stories: {\r
-            through: 'story_sheets',\r
-            foreign_key: 'sheet_id'\r
-            list_method: 'list_by_sheet',\r
-          }, \r
-          sheet_panels: {\r
-            foreign_key: 'sheet_id',\r
-            list_method: 'list_by_sheet',\r
-          }, \r
-          panels: {\r
-            through: 'sheet_panels',\r
-            foreign_key: 'sheet_id'\r
-            list_method: 'list_by_sheet',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        visible: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'sheet_visible_items',\r
-          },\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'caption'\r
-        },\r
-      },\r
-    },\r
-    SheetPanel: 'sheet_panel',\r
-    sheet_panel: {\r
-      class_name: 'SheetPanel',\r
-      table_name: 'sheet_panels',\r
-      associations: {\r
-        belongs_to: {\r
-          sheet: {\r
-            id_column: 'sheet_id'\r
-          }, \r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        sheet_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        x: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        y: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        z: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    Panel: 'panel',\r
-    panel: {\r
-      class_name: 'Panel',\r
-      table_name: 'panels',\r
-      associations: {\r
-        belongs_to: {\r
-          author: {\r
-            id_column: 'author_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          scroll_panels: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          scrolls: {\r
-            through: 'scroll_panels',\r
-            foreign_key: 'panel_id'\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          sheet_panels: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          sheets: {\r
-            through: 'sheet_panels',\r
-            foreign_key: 'panel_id'\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          panel_pictures: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          speech_balloons: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          ground_pictures: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-          ground_colors: {\r
-            foreign_key: 'panel_id',\r
-            list_method: 'list_by_panel',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        border: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        publish: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'panel_visible_items',\r
-          },\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'method',\r
-          name: 'plain_scenario',\r
-        },\r
-      },\r
-    },\r
-    PanelPicture: 'panel_picture',\r
-    panel_picture: {\r
-      class_name: 'PanelPicture',\r
-      table_name: 'panel_pictures',\r
-      associations: {\r
-        belongs_to: {\r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        x: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        y: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        link: {\r
-          type: 'text',\r
-          rules : {\r
-            url: true,\r
-          }\r
-        },\r
-        z: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    SpeechBalloon: 'speech_balloon',\r
-    speech_balloon: {\r
-      class_name: 'SpeechBalloon',\r
-      table_name: 'speech_balloons',\r
-      extend: 'classname', \r
-      associations: {\r
-        belongs_to: {\r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-        has_one: {\r
-          balloon: {\r
-            foreign_key: 'speech_balloon_id',\r
-            list_method: 'list_by_speech_balloon',\r
-          }, \r
-          speech: {\r
-            foreign_key: 'speech_balloon_id',\r
-            list_method: 'list_by_speech_balloon',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        speech_balloon_template_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        z: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'method',\r
-          name: 'plain_scenario',\r
-        },\r
-      },\r
-    }, \r
-    Balloon: 'balloon',\r
-    balloon: {\r
-      class_name: 'Balloon',\r
-      table_name: 'balloons',\r
-      associations: {\r
-        belongs_to: {\r
-          speech_balloon: {\r
-            id_column: 'speech_balloon_id'\r
-          }, \r
-          system_picture: {\r
-            id_column: 'system_picture_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        speech_balloon_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        system_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        x: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        y: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        r: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    Speech: 'speech',\r
-    speech: {\r
-      class_name: 'Speech',\r
-      table_name: 'speeches',\r
-      associations: {\r
-        belongs_to: {\r
-          speech_balloon: {\r
-            id_column: 'speech_balloon_id'\r
-          }, \r
-          writing_format: {\r
-            id_column: 'writing_format_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        speech_balloon_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        writing_format_id: {\r
-          type: 'number',\r
-          source: {\r
-            type: 'model',\r
-            model: 'writing_format',\r
-            method: 'enable_list',\r
-            caption: 'caption'\r
-          },\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        content: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        font_size: {\r
-          type: 'float',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'speech_font_size_items',\r
-          },\r
-        },\r
-        text_align: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            range: [0, 3],\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'speech_text_align_items',\r
-          },\r
-        },\r
-        fore_color: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            range: [0, 0xffffff],\r
-          }\r
-        },\r
-        x: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        y: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        quotes: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    GroundPicture: 'ground_picture',\r
-    ground_picture: {\r
-      class_name: 'GroundPicture',\r
-      table_name: 'ground_pictures',\r
-      associations: {\r
-        belongs_to: {\r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        repeat: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            range: [0, 3],\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'ground_picture_repeat_items',\r
-          },\r
-        },\r
-        x: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        y: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        z: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    GroundColor: 'ground_color',\r
-    ground_color: {\r
-      class_name: 'GroundColor',\r
-      table_name: 'ground_colors',\r
-      associations: {\r
-        belongs_to: {\r
-          panel: {\r
-            id_column: 'panel_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        panel_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        code: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            range: [0, 0xffffff],\r
-          }\r
-        },\r
-        orientation: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            range: [0, 1],\r
-          },\r
-          source: {\r
-            type: 'magic_number',\r
-            key: 'ground_color_orientation_items',\r
-          },\r
-        },\r
-        xy: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        wh: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        z: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 1,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    OriginalPicture: 'original_picture',\r
-    original_picture: {\r
-      class_name: 'OriginalPicture',\r
-      table_name: 'original_pictures',\r
-      associations: {\r
-        belongs_to: {\r
-          artist: {\r
-            id_column: 'artist_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          pictures: {\r
-            foreign_key: 'original_picture_id',\r
-            list_method: 'list_by_original_picture',\r
-          }, \r
-        },\r
-        has_one: {\r
-          resource_picture: {\r
-            foreign_key: 'original_picture_id',\r
-            list_method: 'list_by_original_picture',\r
-          }, \r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        ext: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        filesize: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        artist_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        md5: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-            required: true,\r
-          }\r
-        },\r
-        uploaded_at: {\r
-          type: 'datetime',\r
-        },\r
-        published_at: {\r
-          type: 'datetime',\r
-        },\r
-        stopped_at: {\r
-          type: 'datetime',\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-    },\r
-    Picture: 'picture',\r
-    picture: {\r
-      class_name: 'Picture',\r
-      table_name: 'pictures',\r
-      associations: {\r
-        belongs_to: {\r
-          license: {\r
-            id_column: 'license_id'\r
-          }, \r
-          artist: {\r
-            id_column: 'artist_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        original_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        revision: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        ext: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        filesize: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        artist_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        license_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        md5: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        artist_name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        credit: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    ResourcePicture: 'resource_picture',\r
-    resource_picture: {\r
-      class_name: 'ResourcePicture',\r
-      table_name: 'resource_pictures',\r
-      associations: {\r
-        belongs_to: {\r
-          license: {\r
-            id_column: 'license_id'\r
-          }, \r
-          artist: {\r
-            id_column: 'artist_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        original_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        revision: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        ext: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        filesize: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        artist_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        license_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        md5: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        artist_name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        credit: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    SpeechBalloonTemplate: 'speech_balloon_template',\r
-    speech_balloon_template: {\r
-      class_name: 'SpeechBalloonTemplate',\r
-      table_name: 'speech_balloon_templates',\r
-      associations: {\r
-        belongs_to: {\r
-          system_picture: {\r
-            id_column: 'system_picture_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          speech_balloons: {\r
-            foreign_key: 'speech_balloon_template_id',\r
-            list_method: 'list_by_speech_balloon_template',\r
-          }, \r
-          panels: {\r
-            through: 'speech_balloons',\r
-            foreign_key: 'speech_balloon_template_id',\r
-            list_method: 'list_by_speech_balloon_template',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        t: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-            min: 0,\r
-          }\r
-        },\r
-        system_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'enable_list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'caption',\r
-        },\r
-      },\r
-    },\r
-    WritingFormat: 'writing_format',\r
-    writing_format: {\r
-      class_name: 'WritingFormat',\r
-      table_name: 'writing_formats',\r
-      associations: {\r
-        belongs_to: {\r
-          system_picture: {\r
-            id_column: 'system_picture_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          speeches: {\r
-            foreign_key: 'writing_format_id',\r
-            list_method: 'list_by_writing_format',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        system_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'enable_list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'caption',\r
-        },\r
-      },\r
-    },\r
-    LicenseGroup: 'license_group',\r
-    license_group: {\r
-      class_name: 'LicenseGroup',\r
-      table_name: 'license_groups',\r
-      associations: {\r
-        belongs_to: {\r
-        },\r
-        has_many: {\r
-          licenses: {\r
-            foreign_key: 'license_group_id',\r
-            list_method: 'list_by_license_group',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        classname: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        url: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'caption',\r
-        },\r
-      },\r
-    },\r
-    License: 'license',\r
-    license: {\r
-      class_name: 'License',\r
-      table_name: 'licenses',\r
-      associations: {\r
-        belongs_to: {\r
-          license_group: {\r
-            id_column: 'license_group_id'\r
-          }, \r
-          system_picture: {\r
-            id_column: 'system_picture_id'\r
-          }, \r
-        },\r
-        has_many: {\r
-          resource_pictures: {\r
-            foreign_key: 'license_id',\r
-            list_method: 'list_by_license',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        license_group_id: {\r
-          type: 'number',\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        caption: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        system_picture_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        url: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        settings: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        credit_pictures: {\r
-          type: 'text',\r
-          rules : {\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-    Author: 'author',\r
-    author: {\r
-      class_name: 'Author',\r
-      table_name: 'authors',\r
-      associations: {\r
-        belongs_to: {\r
-        },\r
-        has_many: {\r
-          scrolls: {\r
-            foreign_key: 'author_id',\r
-            list_method: 'list_by_author',\r
-          }, \r
-          comics: {\r
-            foreign_key: 'author_id',\r
-            list_method: 'list_by_author',\r
-          }, \r
-          stories: {\r
-            foreign_key: 'author_id',\r
-            list_method: 'list_by_author',\r
-          }, \r
-          sheets: {\r
-            foreign_key: 'author_id',\r
-            list_method: 'list_by_author',\r
-          }, \r
-          panels: {\r
-            foreign_key: 'author_id',\r
-            list_method: 'list_by_author',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        user_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'name',\r
-        },\r
-      },\r
-    },\r
-    Artist: 'artist',\r
-    artist: {\r
-      class_name: 'Artist',\r
-      table_name: 'artists',\r
-      associations: {\r
-        belongs_to: {\r
-        },\r
-        has_many: {\r
-          resource_pictures: {\r
-            foreign_key: 'artist_id',\r
-            list_method: 'list_by_artist',\r
-          }, \r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        name: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        author_id: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      },\r
-      select: {\r
-        method: 'list',\r
-        caption: {\r
-          type: 'column',\r
-          name: 'name',\r
-        },\r
-      },\r
-    },\r
-    SystemPicture: 'system_picture',\r
-    system_picture: {\r
-      class_name: 'SystemPicture',\r
-      table_name: 'system_pictures',\r
-      associations: {\r
-        belongs_to: {\r
-        },\r
-        has_many: {\r
-        },\r
-        has_one: {\r
-        },\r
-      },\r
-      attributes: {\r
-        id: {\r
-          type: 'number',\r
-          primary_key: 1,\r
-          rules : {\r
-            number: true,\r
-          }\r
-        },\r
-        ext: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-          }\r
-        },\r
-        width: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        height: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        filesize: {\r
-          type: 'number',\r
-          rules : {\r
-            required: true,\r
-            number: true,\r
-          }\r
-        },\r
-        md5: {\r
-          type: 'text',\r
-          rules : {\r
-            required: true,\r
-            required: true,\r
-          }\r
-        },\r
-        created_at: {\r
-          type: 'datetime',\r
-        },\r
-        updated_at: {\r
-          type: 'datetime',\r
-        }\r
-      }\r
-    },\r
-  },\r
   lists: {\r
     scroll: {\r
       default_page_size: 25, \r
           from: 'comic',\r
           filter_key: 'comic_id',\r
         },\r
+        by_sheet: {\r
+          type: 'through_filter',\r
+          from: 'sheet',\r
+          through: 'sheet_panels',\r
+          filter_key: 'sheet_id',\r
+        },\r
       },\r
     },\r
     story_sheet: {\r
         },\r
         by_sheet: {\r
           type: 'filter',\r
+          with: 'story',\r
           from: 'sheet',\r
           filter_key: 'sheet_id',\r
         },\r
         },\r
         by_sheet: {\r
           type: 'filter',\r
+          association_name: 'sheet_panels',\r
           from: 'sheet',\r
           filter_key: 'sheet_id',\r
         },\r
         public_list: {\r
           type: 'public',\r
         },\r
+        scroll_panels: {\r
+          type: 'has_many',\r
+          association_name: 'scroll_panels',\r
+        },\r
+        scrolls: {\r
+          type: 'has_many',\r
+          association_name: 'scrolls',\r
+        },\r
+        sheet_panels: {\r
+          type: 'has_many',\r
+          association_name: 'sheet_panels',\r
+        },\r
+        sheets: {\r
+          type: 'has_many',\r
+          association_name: 'sheets',\r
+        },\r
         by_scroll: {\r
           type: 'through_filter',\r
           from: 'scroll',\r
           through: 'sheet_panels',\r
           filter_key: 'sheet_id',\r
         },\r
+        by_author: {\r
+          type: 'filter',\r
+          from: 'author',\r
+          filter_key: 'author_id',\r
+        },\r
       },\r
     },\r
     panel_picture: {\r
         }, \r
       },\r
       scroll_panel: {\r
+        lists: {\r
+        }, \r
         columns: [\r
           'id', \r
           'scroll_id', \r
         }, \r
       },\r
       comic: {\r
+        lists: {\r
+          'stories.by_comic': {\r
+            model_name: 'story',\r
+            list_name: 'by_comic',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'title', \r
             'author',\r
           ],\r
           has_many: [\r
-            'stories', \r
+            'stories.by_comic', \r
           ],\r
         }, \r
       },\r
       story: {\r
+        lists: {\r
+          'story_sheets.by_story': {\r
+            model_name: 'story_sheet',\r
+            list_name: 'by_story',\r
+          }, \r
+          'sheets.by_story': {\r
+            model_name: 'sheet',\r
+            list_name: 'by_sheet',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'comic_id', \r
             'comic',\r
           ],\r
           has_many: [\r
-            'story_sheets', \r
-            'sheets'\r
+            'story_sheets.by_story', \r
+            'sheets.by_story'\r
           ],\r
         }, \r
       },\r
       story_sheet: {\r
+        lists: {\r
+        }, \r
         columns: [\r
           'id', \r
           'story_id', \r
         }, \r
       },\r
       sheet: {\r
+        lists: {\r
+          'story_sheets.by_sheet': {\r
+            model_name: 'story_sheet',\r
+            list_name: 'by_sheet',\r
+          }, \r
+          'stories.by_sheet': {\r
+            model_name: 'story',\r
+            list_name: 'by_sheet',\r
+          }, \r
+          'sheet_panels.by_sheet': {\r
+            model_name: 'sheet_panel',\r
+            list_name: 'by_sheet',\r
+          }, \r
+          'panels.by_sheet': {\r
+            model_name: 'panel',\r
+            list_name: 'by_sheet',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'caption', \r
             'author',\r
           ],\r
           has_many: [\r
-            'story_sheets', \r
-            'stories', \r
-            'sheet_panels'\r
-            'panels'\r
+            'story_sheets.by_sheet', \r
+            'stories.by_sheet', \r
+            'sheet_panels.by_sheet'\r
+            'panels.by_sheet'\r
           ],\r
         }, \r
       },\r
       sheet_panel: {\r
+        lists: {\r
+        }, \r
         columns: [\r
           'id', \r
           'sheet_id', \r
         }, \r
       },\r
       panel: {\r
+        lists: {\r
+          'scroll_panels.by_panel': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'scrolls.by_panel': {\r
+            model_name: 'scroll',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'sheet_panels.by_panel': {\r
+            model_name: 'sheet_panel',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'sheets.by_panel': {\r
+            model_name: 'sheet',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'panel_pictures.by_panel': {\r
+            model_name: 'panel_picture',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'speech_balloons.by_panel': {\r
+            model_name: 'speech_balloon',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'ground_pictures.by_panel': {\r
+            model_name: 'ground_picture',\r
+            list_name: 'by_panel',\r
+          }, \r
+          'ground_colors.by_panel': {\r
+            model_name: 'ground_color',\r
+            list_name: 'by_panel',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'width', \r
             'author',\r
           ],\r
           has_many: [\r
-            'scroll_panels',\r
-            'scrolls',\r
-            'sheet_panels',\r
-            'sheets',\r
-            'panel_pictures',\r
-            'speech_balloons',\r
-            'ground_pictures',\r
-            'ground_colors',\r
+            'scroll_panels.by_panel',\r
+            'scrolls.by_panel',\r
+            'sheet_panels.by_panel',\r
+            'sheets.by_panel',\r
+            'panel_pictures.by_panel',\r
+            'speech_balloons.by_panel',\r
+            'ground_pictures.by_panel',\r
+            'ground_colors.by_panel',\r
           ],\r
         }, \r
       },\r
       panel_picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'panel_id', \r
         }, \r
       },\r
       speech_balloon: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'panel_id', \r
         }, \r
       },\r
       speech: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'speech_balloon_id', \r
         }, \r
       },\r
       balloon: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'speech_balloon_id', \r
         }, \r
       },\r
       ground_picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'panel_id', \r
         }, \r
       },\r
       ground_color: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'panel_id', \r
         }, \r
       },\r
       original_picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'ext', \r
         }, \r
       },\r
       picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'original_picture_id', \r
         }, \r
       },\r
       resource_picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'original_picture_id', \r
         }, \r
       },\r
       speech_balloon_template: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'name', \r
         }, \r
       },\r
       writing_format: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'name', \r
         }, \r
       },\r
       license_group: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'name', \r
         }, \r
       },\r
       license: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'license_group_id', \r
         }, \r
       },\r
       author: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'name', \r
         }, \r
       },\r
       artist: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'name', \r
         }, \r
       },\r
       system_picture: {\r
+        lists: {\r
+          'scroll_panels.by_scroll': {\r
+            model_name: 'scroll_panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+          'panels.by_scroll': {\r
+            model_name: 'panel',\r
+            list_name: 'by_scroll',\r
+          }, \r
+        }, \r
         columns: [\r
           'id', \r
           'ext', \r
diff --git a/app/assets/javascripts/configurations2.js.coffee.erb b/app/assets/javascripts/configurations2.js.coffee.erb
new file mode 100644 (file)
index 0000000..a8ed085
--- /dev/null
@@ -0,0 +1,2035 @@
+#マニフェスト\r
+@configurations2 = {\r
+  models: {\r
+    Scroll: 'scroll',\r
+    scroll: {\r
+      class_name: 'Scroll',\r
+      table_name: 'scrolls',\r
+      associations: {\r
+        belongs_to: {\r
+          author: {\r
+            id_column: 'author_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          scroll_panels: {\r
+            foreign_key: 'scroll_id',\r
+            model: 'scroll_panel',\r
+          }, \r
+          panels: {\r
+            through: 'scroll_panel',\r
+            foreign_key: 'scroll_id'\r
+            model: 'panel',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        title: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        description: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        visible: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'scroll_visible_items',\r
+          },\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        list: {\r
+          name: 'public'\r
+        },\r
+        caption: {\r
+          type: 'column',\r
+          name: 'title'\r
+        },\r
+      },\r
+    },\r
+    ScrollPanel: 'scroll_panel',\r
+    scroll_panel: {\r
+      class_name: 'ScrollPanel',\r
+      table_name: 'scroll_panels',\r
+      associations: {\r
+        belongs_to: {\r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+          scroll: {\r
+            id_column: 'scroll_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        scroll_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+    },\r
+    Comic: 'comic',\r
+    comic: {\r
+      class_name: 'Comic',\r
+      table_name: 'comics',\r
+      associations: {\r
+        belongs_to: {\r
+          author: {\r
+            id_column: 'author_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          stories: {\r
+            foreign_key: 'comic_id'\r
+            model: 'story',\r
+          }, \r
+        },\r
+        has_many_through: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        title: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        description: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        visible: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'comic_visible_items',\r
+          },\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'title'\r
+        },\r
+      },\r
+    },\r
+    Story: 'story',\r
+    story: {\r
+      class_name: 'Story',\r
+      table_name: 'stories',\r
+      associations: {\r
+        belongs_to: {\r
+          comic: {\r
+            id_column: 'comic_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          story_sheets: {\r
+            foreign_key: 'story_id',\r
+            list_method: 'list_by_story',\r
+          }, \r
+          sheets: {\r
+            through: 'story_sheets',\r
+            foreign_key: 'story_id'\r
+            list_method: 'list_by_story',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        comic_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        title: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        description: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        visible: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'story_visible_items',\r
+          },\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'method',\r
+          name: 'title_with_t',\r
+        },\r
+      },\r
+    },\r
+    StorySheet: 'story_sheet',\r
+    story_sheet: {\r
+      class_name: 'StorySheet',\r
+      table_name: 'story_sheets',\r
+      associations: {\r
+        belongs_to: {\r
+          story: {\r
+            id_column: 'story_id'\r
+          }, \r
+          sheet: {\r
+            id_column: 'sheet_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        story_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        sheet_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    Sheet: 'sheet',\r
+    sheet: {\r
+      class_name: 'Sheet',\r
+      table_name: 'sheets',\r
+      associations: {\r
+        belongs_to: {\r
+          author: {\r
+            id_column: 'author_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          story_sheets: {\r
+            foreign_key: 'story_id',\r
+            list_method: 'list_by_sheet',\r
+          }, \r
+          stories: {\r
+            through: 'story_sheets',\r
+            foreign_key: 'sheet_id'\r
+            list_method: 'list_by_sheet',\r
+          }, \r
+          sheet_panels: {\r
+            foreign_key: 'sheet_id',\r
+            list_method: 'list_by_sheet',\r
+          }, \r
+          panels: {\r
+            through: 'sheet_panels',\r
+            foreign_key: 'sheet_id'\r
+            list_method: 'list_by_sheet',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        visible: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'sheet_visible_items',\r
+          },\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'caption'\r
+        },\r
+      },\r
+    },\r
+    SheetPanel: 'sheet_panel',\r
+    sheet_panel: {\r
+      class_name: 'SheetPanel',\r
+      table_name: 'sheet_panels',\r
+      associations: {\r
+        belongs_to: {\r
+          sheet: {\r
+            id_column: 'sheet_id'\r
+          }, \r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        sheet_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        x: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        y: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        z: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    Panel: 'panel',\r
+    panel: {\r
+      class_name: 'Panel',\r
+      table_name: 'panels',\r
+      associations: {\r
+        belongs_to: {\r
+          author: {\r
+            id_column: 'author_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          scroll_panels: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          scrolls: {\r
+            through: 'scroll_panels',\r
+            foreign_key: 'panel_id'\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          sheet_panels: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          sheets: {\r
+            through: 'sheet_panels',\r
+            foreign_key: 'panel_id'\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          panel_pictures: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          speech_balloons: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          ground_pictures: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+          ground_colors: {\r
+            foreign_key: 'panel_id',\r
+            list_method: 'list_by_panel',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        border: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        publish: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'panel_visible_items',\r
+          },\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'method',\r
+          name: 'plain_scenario',\r
+        },\r
+      },\r
+    },\r
+    PanelPicture: 'panel_picture',\r
+    panel_picture: {\r
+      class_name: 'PanelPicture',\r
+      table_name: 'panel_pictures',\r
+      associations: {\r
+        belongs_to: {\r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        x: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        y: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        link: {\r
+          type: 'text',\r
+          rules : {\r
+            url: true,\r
+          }\r
+        },\r
+        z: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    SpeechBalloon: 'speech_balloon',\r
+    speech_balloon: {\r
+      class_name: 'SpeechBalloon',\r
+      table_name: 'speech_balloons',\r
+      extend: 'classname', \r
+      associations: {\r
+        belongs_to: {\r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+        has_one: {\r
+          balloon: {\r
+            foreign_key: 'speech_balloon_id',\r
+            list_method: 'list_by_speech_balloon',\r
+          }, \r
+          speech: {\r
+            foreign_key: 'speech_balloon_id',\r
+            list_method: 'list_by_speech_balloon',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        speech_balloon_template_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        z: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'method',\r
+          name: 'plain_scenario',\r
+        },\r
+      },\r
+    }, \r
+    Balloon: 'balloon',\r
+    balloon: {\r
+      class_name: 'Balloon',\r
+      table_name: 'balloons',\r
+      associations: {\r
+        belongs_to: {\r
+          speech_balloon: {\r
+            id_column: 'speech_balloon_id'\r
+          }, \r
+          system_picture: {\r
+            id_column: 'system_picture_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        speech_balloon_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        system_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        x: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        y: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        r: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    Speech: 'speech',\r
+    speech: {\r
+      class_name: 'Speech',\r
+      table_name: 'speeches',\r
+      associations: {\r
+        belongs_to: {\r
+          speech_balloon: {\r
+            id_column: 'speech_balloon_id'\r
+          }, \r
+          writing_format: {\r
+            id_column: 'writing_format_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        speech_balloon_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        writing_format_id: {\r
+          type: 'number',\r
+          source: {\r
+            type: 'model',\r
+            model: 'writing_format',\r
+            method: 'enable_list',\r
+            caption: 'caption'\r
+          },\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        content: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        font_size: {\r
+          type: 'float',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'speech_font_size_items',\r
+          },\r
+        },\r
+        text_align: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 3],\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'speech_text_align_items',\r
+          },\r
+        },\r
+        fore_color: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 0xffffff],\r
+          }\r
+        },\r
+        x: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        y: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        quotes: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    GroundPicture: 'ground_picture',\r
+    ground_picture: {\r
+      class_name: 'GroundPicture',\r
+      table_name: 'ground_pictures',\r
+      associations: {\r
+        belongs_to: {\r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        repeat: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 3],\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'ground_picture_repeat_items',\r
+          },\r
+        },\r
+        x: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        y: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        z: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    GroundColor: 'ground_color',\r
+    ground_color: {\r
+      class_name: 'GroundColor',\r
+      table_name: 'ground_colors',\r
+      associations: {\r
+        belongs_to: {\r
+          panel: {\r
+            id_column: 'panel_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        panel_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        code: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 0xffffff],\r
+          }\r
+        },\r
+        orientation: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 1],\r
+          },\r
+          source: {\r
+            type: 'magic_number',\r
+            key: 'ground_color_orientation_items',\r
+          },\r
+        },\r
+        xy: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        wh: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        z: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    OriginalPicture: 'original_picture',\r
+    original_picture: {\r
+      class_name: 'OriginalPicture',\r
+      table_name: 'original_pictures',\r
+      associations: {\r
+        belongs_to: {\r
+          artist: {\r
+            id_column: 'artist_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          pictures: {\r
+            foreign_key: 'original_picture_id',\r
+            list_method: 'list_by_original_picture',\r
+          }, \r
+        },\r
+        has_one: {\r
+          resource_picture: {\r
+            foreign_key: 'original_picture_id',\r
+            list_method: 'list_by_original_picture',\r
+          }, \r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        ext: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        filesize: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        artist_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        md5: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+            required: true,\r
+          }\r
+        },\r
+        uploaded_at: {\r
+          type: 'datetime',\r
+        },\r
+        published_at: {\r
+          type: 'datetime',\r
+        },\r
+        stopped_at: {\r
+          type: 'datetime',\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+    },\r
+    Picture: 'picture',\r
+    picture: {\r
+      class_name: 'Picture',\r
+      table_name: 'pictures',\r
+      associations: {\r
+        belongs_to: {\r
+          license: {\r
+            id_column: 'license_id'\r
+          }, \r
+          artist: {\r
+            id_column: 'artist_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        original_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        revision: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        ext: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        filesize: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        artist_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        license_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        md5: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        artist_name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        credit: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    ResourcePicture: 'resource_picture',\r
+    resource_picture: {\r
+      class_name: 'ResourcePicture',\r
+      table_name: 'resource_pictures',\r
+      associations: {\r
+        belongs_to: {\r
+          license: {\r
+            id_column: 'license_id'\r
+          }, \r
+          artist: {\r
+            id_column: 'artist_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        original_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        revision: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        ext: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        filesize: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        artist_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        license_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        md5: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        artist_name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        credit: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    SpeechBalloonTemplate: 'speech_balloon_template',\r
+    speech_balloon_template: {\r
+      class_name: 'SpeechBalloonTemplate',\r
+      table_name: 'speech_balloon_templates',\r
+      associations: {\r
+        belongs_to: {\r
+          system_picture: {\r
+            id_column: 'system_picture_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          speech_balloons: {\r
+            foreign_key: 'speech_balloon_template_id',\r
+            list_method: 'list_by_speech_balloon_template',\r
+          }, \r
+          panels: {\r
+            through: 'speech_balloons',\r
+            foreign_key: 'speech_balloon_template_id',\r
+            list_method: 'list_by_speech_balloon_template',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        t: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        system_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'enable_list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'caption',\r
+        },\r
+      },\r
+    },\r
+    WritingFormat: 'writing_format',\r
+    writing_format: {\r
+      class_name: 'WritingFormat',\r
+      table_name: 'writing_formats',\r
+      associations: {\r
+        belongs_to: {\r
+          system_picture: {\r
+            id_column: 'system_picture_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          speeches: {\r
+            foreign_key: 'writing_format_id',\r
+            list_method: 'list_by_writing_format',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        system_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'enable_list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'caption',\r
+        },\r
+      },\r
+    },\r
+    LicenseGroup: 'license_group',\r
+    license_group: {\r
+      class_name: 'LicenseGroup',\r
+      table_name: 'license_groups',\r
+      associations: {\r
+        belongs_to: {\r
+        },\r
+        has_many: {\r
+          licenses: {\r
+            foreign_key: 'license_group_id',\r
+            list_method: 'list_by_license_group',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        classname: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        url: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'caption',\r
+        },\r
+      },\r
+    },\r
+    License: 'license',\r
+    license: {\r
+      class_name: 'License',\r
+      table_name: 'licenses',\r
+      associations: {\r
+        belongs_to: {\r
+          license_group: {\r
+            id_column: 'license_group_id'\r
+          }, \r
+          system_picture: {\r
+            id_column: 'system_picture_id'\r
+          }, \r
+        },\r
+        has_many: {\r
+          resource_pictures: {\r
+            foreign_key: 'license_id',\r
+            list_method: 'list_by_license',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        license_group_id: {\r
+          type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        system_picture_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        url: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        settings: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        credit_pictures: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+    Author: 'author',\r
+    author: {\r
+      class_name: 'Author',\r
+      table_name: 'authors',\r
+      associations: {\r
+        belongs_to: {\r
+        },\r
+        has_many: {\r
+          scrolls: {\r
+            foreign_key: 'author_id',\r
+            list_method: 'list_by_author',\r
+          }, \r
+          comics: {\r
+            foreign_key: 'author_id',\r
+            list_method: 'list_by_author',\r
+          }, \r
+          stories: {\r
+            foreign_key: 'author_id',\r
+            list_method: 'list_by_author',\r
+          }, \r
+          sheets: {\r
+            foreign_key: 'author_id',\r
+            list_method: 'list_by_author',\r
+          }, \r
+          panels: {\r
+            foreign_key: 'author_id',\r
+            list_method: 'list_by_author',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        user_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'name',\r
+        },\r
+      },\r
+    },\r
+    Artist: 'artist',\r
+    artist: {\r
+      class_name: 'Artist',\r
+      table_name: 'artists',\r
+      associations: {\r
+        belongs_to: {\r
+        },\r
+        has_many: {\r
+          resource_pictures: {\r
+            foreign_key: 'artist_id',\r
+            list_method: 'list_by_artist',\r
+          }, \r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        name: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      },\r
+      select: {\r
+        method: 'list',\r
+        caption: {\r
+          type: 'column',\r
+          name: 'name',\r
+        },\r
+      },\r
+    },\r
+    SystemPicture: 'system_picture',\r
+    system_picture: {\r
+      class_name: 'SystemPicture',\r
+      table_name: 'system_pictures',\r
+      associations: {\r
+        belongs_to: {\r
+        },\r
+        has_many: {\r
+        },\r
+        has_one: {\r
+        },\r
+      },\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        ext: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        filesize: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        md5: {\r
+          type: 'text',\r
+          rules : {\r
+            required: true,\r
+            required: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
+  },\r
+}\r
+\r
index b541b22..464975c 100644 (file)
@@ -2,6 +2,9 @@ $ ->
   confirm_confirm_confirm = () ->\r
     confirm(  )\r
   editor = window.PettanrEditor\r
+  _.extend(window.configurations, window.configurations2)\r
+  j = JSON.stringify(window.configurations, undefined, 2)\r
+  $('#pettanr-configurations').val(j)\r
   configurations =  window.configurations\r
   WritingFormat = window.PettanrWritingFormat\r
   WritingFormat.load($('#writing_formats'))\r
@@ -611,6 +614,4 @@ $ ->
     $('.new-element').map ->\r
       $(@).click -> \r
         false\r
-    j = JSON.stringify(window.configurations)\r
-    $('#pettanr-configurations').val(j)\r
 \r
index 8931f13..5a57fd5 100644 (file)
@@ -93,3849 +93,4 @@ module ApplicationHelper
     }.join("\n")
   end
   
-  def configurations
-    JSON.parse(<<HD
-{
-    "models": {
-        "Scroll": "scroll",
-        "scroll": {
-            "class_name": "Scroll",
-            "table_name": "scrolls",
-            "associations": {
-                "belongs_to": {
-                    "author": {
-                        "id_column": "author_id"
-                    }
-                },
-                "has_many": {
-                    "scroll_panels": {
-                        "foreign_key": "scroll_id",
-                        "list_method": "list_by_scroll"
-                    },
-                    "panels": {
-                        "through": "scroll_panels",
-                        "foreign_key": "scroll_id",
-                        "list_method": "list_by_scroll"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "title": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "description": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "visible": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "scroll_visible_items"
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "title"
-                }
-            }
-        },
-        "ScrollPanel": "scroll_panel",
-        "scroll_panel": {
-            "class_name": "ScrollPanel",
-            "table_name": "scroll_panels",
-            "associations": {
-                "belongs_to": {
-                    "panel": {
-                        "id_column": "panel_id"
-                    },
-                    "scroll": {
-                        "id_column": "scroll_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "scroll_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Comic": "comic",
-        "comic": {
-            "class_name": "Comic",
-            "table_name": "comics",
-            "associations": {
-                "belongs_to": {
-                    "author": {
-                        "id_column": "author_id"
-                    }
-                },
-                "has_many": {
-                    "stories": {
-                        "foreign_key": "comic_id",
-                        "list_method": "list_by_comic"
-                    }
-                },
-                "has_many_through": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "title": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "description": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "visible": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "comic_visible_items"
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "title"
-                }
-            }
-        },
-        "Story": "story",
-        "story": {
-            "class_name": "Story",
-            "table_name": "stories",
-            "associations": {
-                "belongs_to": {
-                    "comic": {
-                        "id_column": "comic_id"
-                    }
-                },
-                "has_many": {
-                    "story_sheets": {
-                        "foreign_key": "story_id",
-                        "list_method": "list_by_story"
-                    },
-                    "sheets": {
-                        "through": "story_sheets",
-                        "foreign_key": "story_id",
-                        "list_method": "list_by_story"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "comic_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "title": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "description": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "visible": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "story_visible_items"
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "method",
-                    "name": "title_with_t"
-                }
-            }
-        },
-        "StorySheet": "story_sheet",
-        "story_sheet": {
-            "class_name": "StorySheet",
-            "table_name": "story_sheets",
-            "associations": {
-                "belongs_to": {
-                    "story": {
-                        "id_column": "story_id"
-                    },
-                    "sheet": {
-                        "id_column": "sheet_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "story_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "sheet_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Sheet": "sheet",
-        "sheet": {
-            "class_name": "Sheet",
-            "table_name": "sheets",
-            "associations": {
-                "belongs_to": {
-                    "author": {
-                        "id_column": "author_id"
-                    }
-                },
-                "has_many": {
-                    "story_sheets": {
-                        "foreign_key": "story_id",
-                        "list_method": "list_by_sheet"
-                    },
-                    "stories": {
-                        "through": "story_sheets",
-                        "foreign_key": "sheet_id",
-                        "list_method": "list_by_sheet"
-                    },
-                    "sheet_panels": {
-                        "foreign_key": "sheet_id",
-                        "list_method": "list_by_sheet"
-                    },
-                    "panels": {
-                        "through": "sheet_panels",
-                        "foreign_key": "sheet_id",
-                        "list_method": "list_by_sheet"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "visible": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "sheet_visible_items"
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "caption"
-                }
-            }
-        },
-        "SheetPanel": "sheet_panel",
-        "sheet_panel": {
-            "class_name": "SheetPanel",
-            "table_name": "sheet_panels",
-            "associations": {
-                "belongs_to": {
-                    "sheet": {
-                        "id_column": "sheet_id"
-                    },
-                    "panel": {
-                        "id_column": "panel_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "sheet_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "x": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "y": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "z": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Panel": "panel",
-        "panel": {
-            "class_name": "Panel",
-            "table_name": "panels",
-            "associations": {
-                "belongs_to": {
-                    "author": {
-                        "id_column": "author_id"
-                    }
-                },
-                "has_many": {
-                    "scroll_panels": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "scrolls": {
-                        "through": "scroll_panels",
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "sheet_panels": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "sheets": {
-                        "through": "sheet_panels",
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "panel_pictures": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "speech_balloons": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "ground_pictures": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    },
-                    "ground_colors": {
-                        "foreign_key": "panel_id",
-                        "list_method": "list_by_panel"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "border": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "publish": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "panel_visible_items"
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "method",
-                    "name": "plain_scenario"
-                }
-            }
-        },
-        "PanelPicture": "panel_picture",
-        "panel_picture": {
-            "class_name": "PanelPicture",
-            "table_name": "panel_pictures",
-            "associations": {
-                "belongs_to": {
-                    "panel": {
-                        "id_column": "panel_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "x": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "y": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "link": {
-                    "type": "text",
-                    "rules": {
-                        "url": true
-                    }
-                },
-                "z": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "SpeechBalloon": "speech_balloon",
-        "speech_balloon": {
-            "class_name": "SpeechBalloon",
-            "table_name": "speech_balloons",
-            "extend": "classname",
-            "associations": {
-                "belongs_to": {
-                    "panel": {
-                        "id_column": "panel_id"
-                    }
-                },
-                "has_many": {},
-                "has_one": {
-                    "balloon": {
-                        "foreign_key": "speech_balloon_id",
-                        "list_method": "list_by_speech_balloon"
-                    },
-                    "speech": {
-                        "foreign_key": "speech_balloon_id",
-                        "list_method": "list_by_speech_balloon"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "speech_balloon_template_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "z": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "method",
-                    "name": "plain_scenario"
-                }
-            }
-        },
-        "Balloon": "balloon",
-        "balloon": {
-            "class_name": "Balloon",
-            "table_name": "balloons",
-            "associations": {
-                "belongs_to": {
-                    "speech_balloon": {
-                        "id_column": "speech_balloon_id"
-                    },
-                    "system_picture": {
-                        "id_column": "system_picture_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "speech_balloon_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "system_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "x": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "y": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "r": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Speech": "speech",
-        "speech": {
-            "class_name": "Speech",
-            "table_name": "speeches",
-            "associations": {
-                "belongs_to": {
-                    "speech_balloon": {
-                        "id_column": "speech_balloon_id"
-                    },
-                    "writing_format": {
-                        "id_column": "writing_format_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "speech_balloon_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "writing_format_id": {
-                    "type": "number",
-                    "source": {
-                        "type": "model",
-                        "model": "writing_format",
-                        "method": "enable_list",
-                        "caption": "caption"
-                    },
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "content": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "font_size": {
-                    "type": "float",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "speech_font_size_items"
-                    }
-                },
-                "text_align": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "range": [
-                            0,
-                            3
-                        ]
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "speech_text_align_items"
-                    }
-                },
-                "fore_color": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "range": [
-                            0,
-                            16777215
-                        ]
-                    }
-                },
-                "x": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "y": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "quotes": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "GroundPicture": "ground_picture",
-        "ground_picture": {
-            "class_name": "GroundPicture",
-            "table_name": "ground_pictures",
-            "associations": {
-                "belongs_to": {
-                    "panel": {
-                        "id_column": "panel_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "repeat": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "range": [
-                            0,
-                            3
-                        ]
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "ground_picture_repeat_items"
-                    }
-                },
-                "x": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "y": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "z": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "GroundColor": "ground_color",
-        "ground_color": {
-            "class_name": "GroundColor",
-            "table_name": "ground_colors",
-            "associations": {
-                "belongs_to": {
-                    "panel": {
-                        "id_column": "panel_id"
-                    }
-                },
-                "has_many": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "panel_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "code": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "range": [
-                            0,
-                            16777215
-                        ]
-                    }
-                },
-                "orientation": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "range": [
-                            0,
-                            1
-                        ]
-                    },
-                    "source": {
-                        "type": "magic_number",
-                        "key": "ground_color_orientation_items"
-                    }
-                },
-                "xy": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "wh": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "z": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 1
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "OriginalPicture": "original_picture",
-        "original_picture": {
-            "class_name": "OriginalPicture",
-            "table_name": "original_pictures",
-            "associations": {
-                "belongs_to": {
-                    "artist": {
-                        "id_column": "artist_id"
-                    }
-                },
-                "has_many": {
-                    "pictures": {
-                        "foreign_key": "original_picture_id",
-                        "list_method": "list_by_original_picture"
-                    }
-                },
-                "has_one": {
-                    "resource_picture": {
-                        "foreign_key": "original_picture_id",
-                        "list_method": "list_by_original_picture"
-                    }
-                }
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "ext": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "filesize": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "artist_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "md5": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "uploaded_at": {
-                    "type": "datetime"
-                },
-                "published_at": {
-                    "type": "datetime"
-                },
-                "stopped_at": {
-                    "type": "datetime"
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Picture": "picture",
-        "picture": {
-            "class_name": "Picture",
-            "table_name": "pictures",
-            "associations": {
-                "belongs_to": {
-                    "license": {
-                        "id_column": "license_id"
-                    },
-                    "artist": {
-                        "id_column": "artist_id"
-                    }
-                },
-                "has_many": {},
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "original_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "revision": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "ext": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "filesize": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "artist_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "license_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "md5": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "artist_name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "credit": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "ResourcePicture": "resource_picture",
-        "resource_picture": {
-            "class_name": "ResourcePicture",
-            "table_name": "resource_pictures",
-            "associations": {
-                "belongs_to": {
-                    "license": {
-                        "id_column": "license_id"
-                    },
-                    "artist": {
-                        "id_column": "artist_id"
-                    }
-                },
-                "has_many": {},
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "original_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "revision": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "ext": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "filesize": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "artist_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "license_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "md5": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "artist_name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "credit": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "SpeechBalloonTemplate": "speech_balloon_template",
-        "speech_balloon_template": {
-            "class_name": "SpeechBalloonTemplate",
-            "table_name": "speech_balloon_templates",
-            "associations": {
-                "belongs_to": {
-                    "system_picture": {
-                        "id_column": "system_picture_id"
-                    }
-                },
-                "has_many": {
-                    "speech_balloons": {
-                        "foreign_key": "speech_balloon_template_id",
-                        "list_method": "list_by_speech_balloon_template"
-                    },
-                    "panels": {
-                        "through": "speech_balloons",
-                        "foreign_key": "speech_balloon_template_id",
-                        "list_method": "list_by_speech_balloon_template"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "t": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true,
-                        "min": 0
-                    }
-                },
-                "system_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "enable_list",
-                "caption": {
-                    "type": "column",
-                    "name": "caption"
-                }
-            }
-        },
-        "WritingFormat": "writing_format",
-        "writing_format": {
-            "class_name": "WritingFormat",
-            "table_name": "writing_formats",
-            "associations": {
-                "belongs_to": {
-                    "system_picture": {
-                        "id_column": "system_picture_id"
-                    }
-                },
-                "has_many": {
-                    "speeches": {
-                        "foreign_key": "writing_format_id",
-                        "list_method": "list_by_writing_format"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "system_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "enable_list",
-                "caption": {
-                    "type": "column",
-                    "name": "caption"
-                }
-            }
-        },
-        "LicenseGroup": "license_group",
-        "license_group": {
-            "class_name": "LicenseGroup",
-            "table_name": "license_groups",
-            "associations": {
-                "belongs_to": {},
-                "has_many": {
-                    "licenses": {
-                        "foreign_key": "license_group_id",
-                        "list_method": "list_by_license_group"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "classname": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "url": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "caption"
-                }
-            }
-        },
-        "License": "license",
-        "license": {
-            "class_name": "License",
-            "table_name": "licenses",
-            "associations": {
-                "belongs_to": {
-                    "license_group": {
-                        "id_column": "license_group_id"
-                    },
-                    "system_picture": {
-                        "id_column": "system_picture_id"
-                    }
-                },
-                "has_many": {
-                    "resource_pictures": {
-                        "foreign_key": "license_id",
-                        "list_method": "list_by_license"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "license_group_id": {
-                    "type": "number",
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "caption": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "system_picture_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "url": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "settings": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "credit_pictures": {
-                    "type": "text",
-                    "rules": {}
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        },
-        "Author": "author",
-        "author": {
-            "class_name": "Author",
-            "table_name": "authors",
-            "associations": {
-                "belongs_to": {},
-                "has_many": {
-                    "scrolls": {
-                        "foreign_key": "author_id",
-                        "list_method": "list_by_author"
-                    },
-                    "comics": {
-                        "foreign_key": "author_id",
-                        "list_method": "list_by_author"
-                    },
-                    "stories": {
-                        "foreign_key": "author_id",
-                        "list_method": "list_by_author"
-                    },
-                    "sheets": {
-                        "foreign_key": "author_id",
-                        "list_method": "list_by_author"
-                    },
-                    "panels": {
-                        "foreign_key": "author_id",
-                        "list_method": "list_by_author"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "user_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "name"
-                }
-            }
-        },
-        "Artist": "artist",
-        "artist": {
-            "class_name": "Artist",
-            "table_name": "artists",
-            "associations": {
-                "belongs_to": {},
-                "has_many": {
-                    "resource_pictures": {
-                        "foreign_key": "artist_id",
-                        "list_method": "list_by_artist"
-                    }
-                },
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "name": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "author_id": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            },
-            "select": {
-                "method": "list",
-                "caption": {
-                    "type": "column",
-                    "name": "name"
-                }
-            }
-        },
-        "SystemPicture": "system_picture",
-        "system_picture": {
-            "class_name": "SystemPicture",
-            "table_name": "system_pictures",
-            "associations": {
-                "belongs_to": {},
-                "has_many": {},
-                "has_one": {}
-            },
-            "attributes": {
-                "id": {
-                    "type": "number",
-                    "primary_key": 1,
-                    "rules": {
-                        "number": true
-                    }
-                },
-                "ext": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "width": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "height": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "filesize": {
-                    "type": "number",
-                    "rules": {
-                        "required": true,
-                        "number": true
-                    }
-                },
-                "md5": {
-                    "type": "text",
-                    "rules": {
-                        "required": true
-                    }
-                },
-                "created_at": {
-                    "type": "datetime"
-                },
-                "updated_at": {
-                    "type": "datetime"
-                }
-            }
-        }
-    },
-    "profiles": {
-        "scroll": {
-            "fields": [
-                "id",
-                "title",
-                "description",
-                "visible",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "author"
-                ],
-                "has_many": [
-                    "scroll_panels",
-                    "panels"
-                ]
-            }
-        },
-        "scroll_panel": {
-            "fields": [
-                "id",
-                "scroll_id",
-                "panel_id",
-                "t",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "scroll",
-                    "panel"
-                ],
-                "has_many": []
-            }
-        },
-        "comic": {
-            "fields": [
-                "id",
-                "title",
-                "description",
-                "visible",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "author"
-                ],
-                "has_many": [
-                    "stories"
-                ]
-            }
-        },
-        "story": {
-            "fields": [
-                "id",
-                "comic_id",
-                "title",
-                "description",
-                "t",
-                "visible",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "comic"
-                ],
-                "has_many": [
-                    "story_sheets",
-                    "sheets"
-                ]
-            }
-        },
-        "story_sheet": {
-            "fields": [
-                "id",
-                "story_id",
-                "sheet_id",
-                "t",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "story",
-                    "sheet"
-                ],
-                "has_many": []
-            }
-        },
-        "sheet": {
-            "fields": [
-                "id",
-                "caption",
-                "width",
-                "height",
-                "visible",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "author"
-                ],
-                "has_many": [
-                    "story_sheets",
-                    "stories",
-                    "sheet_panels",
-                    "panels"
-                ]
-            }
-        },
-        "sheet_panel": {
-            "fields": [
-                "id",
-                "sheet_id",
-                "panel_id",
-                "x",
-                "y",
-                "z",
-                "t",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "sheet",
-                    "panel"
-                ],
-                "has_many": []
-            }
-        },
-        "panel": {
-            "fields": [
-                "id",
-                "width",
-                "height",
-                "border",
-                "caption",
-                "publish",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "author"
-                ],
-                "has_many": [
-                    "scroll_panels",
-                    "scrolls",
-                    "sheet_panels",
-                    "sheets",
-                    "panel_pictures",
-                    "speech_balloons",
-                    "ground_pictures",
-                    "ground_colors"
-                ]
-            }
-        },
-        "panel_picture": {
-            "fields": [
-                "id",
-                "panel_id",
-                "picture_id",
-                "caption",
-                "x",
-                "y",
-                "width",
-                "height",
-                "link",
-                "z",
-                "t",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "panel"
-                ],
-                "has_many": []
-            }
-        },
-        "speech_balloon": {
-            "fields": [
-                "id",
-                "panel_id",
-                "speech_balloon_template_id",
-                "classname",
-                "z",
-                "t",
-                "settings",
-                "caption",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "panel"
-                ],
-                "has_many": [],
-                "has_one": [
-                    "balloon",
-                    "speech"
-                ]
-            }
-        },
-        "speech": {
-            "fields": [
-                "id",
-                "speech_balloon_id",
-                "writing_format_id",
-                "content",
-                "font_size",
-                "text_align",
-                "fore_color",
-                "x",
-                "y",
-                "width",
-                "height",
-                "quotes",
-                "settings",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "speech_balloon",
-                    "writing_format"
-                ],
-                "has_many": []
-            }
-        },
-        "balloon": {
-            "fields": [
-                "id",
-                "speech_balloon_id",
-                "system_picture_id",
-                "x",
-                "y",
-                "width",
-                "height",
-                "r",
-                "settings",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "speech_balloon",
-                    "system_picture"
-                ],
-                "has_many": []
-            }
-        },
-        "ground_picture": {
-            "fields": [
-                "id",
-                "panel_id",
-                "picture_id",
-                "caption",
-                "repeat",
-                "x",
-                "y",
-                "z",
-                "t",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "panel"
-                ],
-                "has_many": []
-            }
-        },
-        "ground_color": {
-            "fields": [
-                "id",
-                "panel_id",
-                "caption",
-                "code",
-                "orientation",
-                "xy",
-                "wh",
-                "z",
-                "t",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "panel"
-                ],
-                "has_many": []
-            }
-        },
-        "original_picture": {
-            "fields": [
-                "id",
-                "ext",
-                "width",
-                "height",
-                "filesize",
-                "artist_id",
-                "md5",
-                "uploaded_at",
-                "published_at",
-                "stopped_at",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "artist"
-                ],
-                "has_many": [
-                    "pictures"
-                ],
-                "has_one": [
-                    "resource_picture"
-                ]
-            }
-        },
-        "picture": {
-            "fields": [
-                "id",
-                "original_picture_id",
-                "revision",
-                "ext",
-                "width",
-                "height",
-                "filesize",
-                "artist_id",
-                "license_id",
-                "md5",
-                "artist_name",
-                "credit",
-                "settings",
-                "classname",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "license",
-                    "artist"
-                ],
-                "has_many": [],
-                "has_one": []
-            }
-        },
-        "resource_picture": {
-            "fields": [
-                "id",
-                "original_picture_id",
-                "revision",
-                "ext",
-                "width",
-                "height",
-                "filesize",
-                "artist_id",
-                "license_id",
-                "md5",
-                "artist_name",
-                "credit",
-                "settings",
-                "picture_id",
-                "classname",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "license",
-                    "artist"
-                ],
-                "has_many": [],
-                "has_one": []
-            }
-        },
-        "speech_balloon_template": {
-            "fields": [
-                "id",
-                "name",
-                "classname",
-                "caption",
-                "t",
-                "system_picture_id",
-                "settings",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "system_picture"
-                ],
-                "has_many": [
-                    "speech_balloons",
-                    "panels"
-                ],
-                "has_one": []
-            }
-        },
-        "writing_format": {
-            "fields": [
-                "id",
-                "name",
-                "classname",
-                "caption",
-                "system_picture_id",
-                "settings",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "system_picture"
-                ],
-                "has_many": [
-                    "speeches"
-                ],
-                "has_one": []
-            }
-        },
-        "license_group": {
-            "fields": [
-                "id",
-                "name",
-                "classname",
-                "caption",
-                "url",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [],
-                "has_many": [
-                    "licenses"
-                ],
-                "has_one": []
-            }
-        },
-        "license": {
-            "fields": [
-                "id",
-                "license_group_id",
-                "name",
-                "caption",
-                "system_picture_id",
-                "url",
-                "settings",
-                "credit_pictures",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [
-                    "license_group",
-                    "system_picture"
-                ],
-                "has_many": [
-                    "resource_pictures"
-                ],
-                "has_one": []
-            }
-        },
-        "author": {
-            "fields": [
-                "id",
-                "name",
-                "user_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [],
-                "has_many": [
-                    "scrolls",
-                    "comics",
-                    "stories",
-                    "sheets",
-                    "panels"
-                ],
-                "has_one": []
-            }
-        },
-        "artist": {
-            "fields": [
-                "id",
-                "name",
-                "author_id",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [],
-                "has_many": [
-                    "resource_pictures"
-                ],
-                "has_one": []
-            }
-        },
-        "system_picture": {
-            "fields": [
-                "id",
-                "ext",
-                "width",
-                "height",
-                "filesize",
-                "md5",
-                "created_at",
-                "updated_at"
-            ],
-            "associations": {
-                "belongs_to": [],
-                "has_many": [],
-                "has_one": []
-            }
-        }
-    },
-    "filers": {
-        "scroll": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "title",
-                "link": {
-                    "type": "action",
-                    "name": "play"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "default"
-            }
-        },
-        "scroll_panel": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "comic": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "title"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "default"
-            }
-        },
-        "story": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "method",
-                "name": "title_with_t",
-                "link": {
-                    "type": "action",
-                    "name": "play"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "default"
-            }
-        },
-        "story_sheet": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "sheet": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption",
-                "link": {
-                    "type": "action",
-                    "name": "play"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "default"
-            }
-        },
-        "sheet_panel": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "panel": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "method",
-                "name": "plain_scenario",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "default"
-            }
-        },
-        "panel_picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "speech_balloon": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "method",
-                "name": "plain_scenario",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "speech": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "column",
-                "name": "content",
-                "link": {
-                    "type": "none"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "balloon": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "ground_picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "ground_color": {
-            "symbol": {
-                "type": "template",
-                "name": "symbol"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "original_picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "method",
-                "name": "revision",
-                "link": {
-                    "type": "action",
-                    "name": "history"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "template",
-                "name": "publish"
-            }
-        },
-        "picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "column",
-                "name": "revision"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "resource_picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "speech_balloon_template": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption"
-            },
-            "summary": {
-                "type": "none"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "writing_format": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption"
-            },
-            "summary": {
-                "type": "none"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "license_group": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "caption",
-                "link": {
-                    "type": "url_column",
-                    "name": "url"
-                }
-            },
-            "summary": {
-                "type": "none"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "license": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "method",
-                "name": "caption_with_group",
-                "link": {
-                    "type": "url_column",
-                    "name": "url"
-                }
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "none"
-            }
-        },
-        "author": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "name"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "account"
-            }
-        },
-        "artist": {
-            "symbol": {
-                "type": "image",
-                "name": "/assets/item.png"
-            },
-            "caption": {
-                "type": "column",
-                "name": "name"
-            },
-            "summary": {
-                "type": "template",
-                "name": "summary"
-            },
-            "edit": {
-                "type": "account"
-            }
-        },
-        "system_picture": {
-            "symbol": {
-                "type": "picture",
-                "name": "symbol_option"
-            },
-            "caption": {
-                "type": "none"
-            },
-            "summary": {
-                "type": "none"
-            },
-            "edit": {
-                "type": "none"
-            }
-        }
-    },
-    "elements": [
-        {
-            "name": "panel_picture",
-            "path_name": "panel_pictures",
-            "parts": []
-        },
-        {
-            "name": "speech_balloon",
-            "path_name": "circle_speech_balloon/speech_balloons",
-            "parts": [
-                "balloon",
-                "speech"
-            ]
-        },
-        {
-            "name": "ground_picture",
-            "path_name": "ground_pictures",
-            "parts": []
-        },
-        {
-            "name": "ground_color",
-            "path_name": "ground_colors",
-            "parts": []
-        }
-    ],
-    "forms": {
-        "Panel": "panel",
-        "panel": {
-            "attributes": {
-                "caption": {
-                    "column": "caption",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "width": {
-                    "column": "width",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "height": {
-                    "column": "height",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "border": {
-                    "column": "border",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "publish": {
-                    "column": "publish",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "magic_number",
-                        "key": "comic_visible_items",
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "id": {
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "author_id": {
-                    "column": "author_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "caption",
-                "width",
-                "height",
-                "border",
-                "publish",
-                "id",
-                "author_id"
-            ]
-        },
-        "PanelPicture": "panel_picture",
-        "panel_picture": {
-            "attributes": {
-                "caption": {
-                    "column": "caption",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "x": {
-                    "column": "x",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "y": {
-                    "column": "y",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "width": {
-                    "column": "width",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    },
-                    "helpers": {
-                        "size": {
-                            "path": "panels/size_helper",
-                            "options": {
-                                "class": "panel_picture_width_tool"
-                            }
-                        }
-                    }
-                },
-                "height": {
-                    "column": "height",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    },
-                    "helpers": {
-                        "size": {
-                            "path": "panels/size_helper",
-                            "options": {
-                                "class": "panel_picture_height_tool"
-                            }
-                        }
-                    }
-                },
-                "link": {
-                    "column": "link",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "id": {
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "panel_id": {
-                    "column": "panel_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "picture_id": {
-                    "column": "picture_id",
-                    "type": "hidden",
-                    "label": {},
-                    "helpers": {
-                        "popup": {
-                            "path": "panels/popup_helper",
-                            "source": "pictures",
-                            "options": {}
-                        }
-                    },
-                    "options": {}
-                },
-                "z": {
-                    "column": "z",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "t": {
-                    "column": "t",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "caption",
-                "x",
-                "y",
-                "width",
-                "height",
-                "link",
-                "id",
-                "panel_id",
-                "picture_id",
-                "z",
-                "t"
-            ]
-        },
-        "speech_balloon": {
-            "attributes": {
-                "speech_balloon.id": {
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.panel_id": {
-                    "column": "panel_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.speech_balloon_template_id": {
-                    "column": "speech_balloon_template_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.caption": {
-                    "column": "caption",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "speech_balloon.z": {
-                    "column": "z",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.t": {
-                    "column": "t",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.classname": {
-                    "column": "classname",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech_balloon.settings": {
-                    "column": "settings",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "balloon.id": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "balloon.speech_balloon_id": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "speech_balloon_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "balloon.system_picture_id": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "system_picture_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "balloon.r": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "r",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    },
-                    "helpers": {
-                        "tail_angle": {
-                            "path": "panels/tail_angle_helper",
-                            "options": {}
-                        }
-                    }
-                },
-                "balloon.x": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "x",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "balloon.y": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "y",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "balloon.width": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "width",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "balloon.height": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "height",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "balloon.settings": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "settings",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.id": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.speech_balloon_id": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "speech_balloon_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.x": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "x",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.y": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "y",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.width": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "width",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.height": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "height",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "speech.writing_format_id": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "writing_format_id",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "model",
-                        "model": "writing_format",
-                        "method": "enable_list",
-                        "caption": "caption"
-                    }
-                },
-                "speech.font_size": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "font_size",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "magic_number",
-                        "key": "speech_font_size_items",
-                        "row_break": true
-                    }
-                },
-                "speech.text_align": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "text_align",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "magic_number",
-                        "key": "speech_text_align_items"
-                    }
-                },
-                "speech.quotes": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "quotes",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "speech.content": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "content",
-                    "type": "text_area",
-                    "label": {
-                        "row_break": true
-                    },
-                    "options": {
-                        "size": "45x5"
-                    }
-                },
-                "speech.fore_color": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "fore_color",
-                    "type": "hidden",
-                    "label": {
-                        "row_break": true
-                    },
-                    "options": {},
-                    "helpers": {
-                        "color": {
-                            "path": "panels/color_helper",
-                            "options": {},
-                            "wrapper": "speech-fore_color-wrap"
-                        }
-                    }
-                },
-                "speech.settings": {
-                    "model": "speech",
-                    "part": "speech",
-                    "column": "settings",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            }
-        },
-        "CircleSpeechBalloon": "circle_speech_balloon",
-        "circle_speech_balloon": {
-            "base": "speech_balloon",
-            "attributes": {},
-            "fields": [
-                "speech_balloon.caption",
-                "balloon.r",
-                "balloon.x",
-                "balloon.y",
-                "balloon.width",
-                "balloon.height",
-                "balloon.id",
-                "balloon.speech_balloon_id",
-                "balloon.system_picture_id",
-                "balloon.settings",
-                "speech.writing_format_id",
-                "speech.font_size",
-                "speech.text_align",
-                "speech.quotes",
-                "speech.content",
-                "speech.fore_color",
-                "speech.id",
-                "speech.speech_balloon_id",
-                "speech.x",
-                "speech.y",
-                "speech.width",
-                "speech.height",
-                "speech.settings",
-                "speech_balloon.id",
-                "speech_balloon.panel_id",
-                "speech_balloon.speech_balloon_template_id",
-                "speech_balloon.classname",
-                "speech_balloon.z",
-                "speech_balloon.t",
-                "speech_balloon.settings"
-            ]
-        },
-        "PlainSpeechBalloon": "plain_speech_balloon",
-        "plain_speech_balloon": {
-            "base": "speech_balloon",
-            "attributes": {
-                "balloon.r": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "r",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "speech_balloon.caption",
-                "balloon.r",
-                "balloon.x",
-                "balloon.y",
-                "balloon.width",
-                "balloon.height",
-                "balloon.id",
-                "balloon.speech_balloon_id",
-                "balloon.system_picture_id",
-                "balloon.settings",
-                "speech.writing_format_id",
-                "speech.font_size",
-                "speech.text_align",
-                "speech.quotes",
-                "speech.content",
-                "speech.fore_color",
-                "speech.id",
-                "speech.speech_balloon_id",
-                "speech.x",
-                "speech.y",
-                "speech.width",
-                "speech.height",
-                "speech.settings",
-                "speech_balloon.id",
-                "speech_balloon.panel_id",
-                "speech_balloon.speech_balloon_template_id",
-                "speech_balloon.classname",
-                "speech_balloon.z",
-                "speech_balloon.t",
-                "speech_balloon.settings"
-            ]
-        },
-        "SquareSpeechBalloon": "square_speech_balloon",
-        "square_speech_balloon": {
-            "base": "speech_balloon",
-            "attributes": {
-                "balloon.r": {
-                    "model": "balloon",
-                    "part": "balloon",
-                    "column": "r",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "speech_balloon.caption",
-                "balloon.r",
-                "balloon.x",
-                "balloon.y",
-                "balloon.width",
-                "balloon.height",
-                "balloon.id",
-                "balloon.speech_balloon_id",
-                "balloon.system_picture_id",
-                "balloon.settings",
-                "speech.writing_format_id",
-                "speech.font_size",
-                "speech.text_align",
-                "speech.quotes",
-                "speech.content",
-                "speech.fore_color",
-                "speech.id",
-                "speech.speech_balloon_id",
-                "speech.x",
-                "speech.y",
-                "speech.width",
-                "speech.height",
-                "speech.settings",
-                "speech_balloon.id",
-                "speech_balloon.panel_id",
-                "speech_balloon.speech_balloon_template_id",
-                "speech_balloon.classname",
-                "speech_balloon.z",
-                "speech_balloon.t",
-                "speech_balloon.settings"
-            ]
-        },
-        "GroundPicture": "ground_picture",
-        "ground_picture": {
-            "attributes": {
-                "id": {
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "panel_id": {
-                    "column": "panel_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "picture_id": {
-                    "column": "picture_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "caption": {
-                    "column": "caption",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "repeat": {
-                    "column": "repeat",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "magic_number",
-                        "key": "ground_picture_repeat_items",
-                        "row_break": true
-                    }
-                },
-                "x": {
-                    "column": "x",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "y": {
-                    "column": "y",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "z": {
-                    "column": "z",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "t": {
-                    "column": "t",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "caption",
-                "repeat",
-                "x",
-                "y",
-                "z",
-                "t",
-                "id",
-                "panel_id",
-                "picture_id"
-            ]
-        },
-        "GroundColor": "ground_color",
-        "ground_color": {
-            "attributes": {
-                "id": {
-                    "column": "id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "panel_id": {
-                    "column": "panel_id",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "caption": {
-                    "column": "caption",
-                    "type": "text",
-                    "label": {},
-                    "options": {
-                        "row_break": true
-                    }
-                },
-                "code": {
-                    "column": "code",
-                    "type": "hidden",
-                    "label": {
-                        "row_break": true
-                    },
-                    "options": {
-                        "row_break": true
-                    },
-                    "helpers": {
-                        "color": {
-                            "path": "panels/color_helper",
-                            "options": {},
-                            "wrapper": "ground_color-code-wrap"
-                        }
-                    }
-                },
-                "orientation": {
-                    "column": "orientation",
-                    "type": "select",
-                    "label": {},
-                    "options": {
-                        "source": "magic_number",
-                        "key": "ground_color_orientation_items",
-                        "row_break": true
-                    }
-                },
-                "xy": {
-                    "column": "xy",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5
-                    }
-                },
-                "wh": {
-                    "column": "wh",
-                    "type": "number",
-                    "label": {},
-                    "options": {
-                        "size": 5,
-                        "row_break": true
-                    }
-                },
-                "z": {
-                    "column": "z",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                },
-                "t": {
-                    "column": "t",
-                    "type": "hidden",
-                    "label": {
-                        "type": "hidden"
-                    },
-                    "options": {}
-                }
-            },
-            "fields": [
-                "id",
-                "panel_id",
-                "caption",
-                "code",
-                "orientation",
-                "xy",
-                "wh",
-                "z",
-                "t"
-            ]
-        }
-    },
-    "locales": {
-        "ja": {}
-    }
-}
-HD
-)
-  end
 end
index 330f1ed..88f2016 100644 (file)
@@ -9,6 +9,10 @@ class WritingFormat < Pettanr::Item
   validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :settings, :presence => true
   
+def self.list 
+  WritingFormat.find :all
+end
+
   def self.valid_encode_columns
     super + ['name', 'classname', 'caption', 'settings']
   end
index 355017e..60e03fc 100644 (file)
@@ -5,7 +5,7 @@
   <% end %>
 <% end %>
 <%= content_tag :div, :id => panel.tag_id, :panel_id => panel.tag_panel_id, :class => "pettanr-comic-panel", :style => "width: #{panel.width}px; height: #{panel.height}px; border-style: solid; border-width: #{panel.border}px; border-color: black; background-color: white;" do %>
-  <% if panel.visible? author -%>
+  <% if panel.visible? @operators -%>
     <% panel.panel_elements.each do |elm| %>
       <%= render elm.class.to_s.tableize + '/element', :elm => elm, :spot => spot %>
     <% end %>
index 63ae9db..4496d4f 100644 (file)
@@ -1,4 +1,3 @@
-<% @configurations = configurations %>
 <div id="template" >
 </div>
 <div id="tabs" class="panel-editor" panel_id="<%= @panel.tag_panel_id -%>" current="1">
     </div>
   <% end %>
 </div>
-  <%= text_field_tag "json", '', :id => 'pettanr-configurations' %>
+  <%= text_area_tag "json", '', :id => 'pettanr-configurations' %>
   <%# %>
 <div <%= raw @panel.tag_attr('popup') -%> style="display: none;" >
 </div>
index 9271859..88ca897 100644 (file)
@@ -97,6 +97,7 @@ module Pettanr
         @association_model_name = @association_conf['model']
         @association_model = @association_model_name.classify.constantize
         @foreign_key = @association_conf['foreign_key']
+        @with_model_name = @association_conf['with']
       end
       
       def where parent_item
@@ -105,6 +106,11 @@ module Pettanr
         [w + @association_model_name + '.' + @foreign_key + ' = ?', parent_item.id] 
       end
       
+      def includes
+        w = @with_model_name ? {@with_model_name.classify.constantize.table_name => {}} : {}
+        {@association_model.table_name => w }
+      end
+      
       def items parent_item
         @model.where(self.where(parent_item)).includes(self.includes).order(self.order).offset(@offset).limit(@page_size)
       end
@@ -121,6 +127,8 @@ module Pettanr
         @list_list_conf = @manifest.list(@item_name).lists[list_name] || {}
         @from = @list_list_conf['from']
         @filter_key = @list_list_conf['filter_key']
+        
+        @with_model_name = @list_list_conf['with']
       end
       
       def where filter_item
@@ -130,7 +138,8 @@ module Pettanr
       end
       
       def includes
-        {@from => {} }
+        w = @with_model_name ? {@with_model_name => {}} : {}
+        {@from => w }
       end
       
       def items filter_item
@@ -143,6 +152,18 @@ module Pettanr
       
     end
     
+    class WithFilterList < FilterList
+      def initialize page, page_size, operators, item_name, list_name, conf, manifest
+        super
+        @with = @list_list_conf['with']
+      end
+      
+      def includes
+        {@from => {@with => {}} }
+      end
+      
+    end
+    
     class ThroughFilterList < FilterList
       def initialize page, page_size, operators, item_name, list_name, conf, manifest
         super
@@ -163,7 +184,8 @@ module Pettanr
     
     @@types = {
       'public' => PublicList, 'system_resource' => SystemResourceList, 'private' => PrivateList, 
-      'has_many' => HasManyList, 'filter' => FilterList, 'through_filter' => ThroughFilterList
+      'has_many' => HasManyList, 'filter' => FilterList, 'with_filter' => WithFilterList, 
+      'through_filter' => ThroughFilterList
     }
     def initialize list_manifest
       @list_manifest = list_manifest
index 40e1fd2..6bccdc2 100644 (file)
@@ -101,7 +101,7 @@ module Pettanr
         id_column = model_belongs_to_conf['id_column']
         begin
           r = parent_model.show(@item.attributes[id_column], @operators)
-        rescue ActiveRecord::RecordNotFound
+        rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
         end
         r
       end
index 944ea64..d8cd316 100644 (file)
 {\r
-    "controllers": {\r
-        "scroll": {\r
-            "model_name": "scroll",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                },\r
-                "show": {\r
-                    "type": "show",\r
-                    "name": "show"\r
-                }\r
-            }\r
-        },\r
-        "scroll_panel": {\r
-            "model_name": "scroll_panel",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+  "controllers": {\r
+    "scroll": {\r
+      "model_name": "scroll",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "comic": {\r
-            "model_name": "comic",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "scroll_panels": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "scroll_panels"\r
+          }\r
         },\r
-        "story": {\r
-            "model_name": "story",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "panels": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "panels"\r
+          }\r
         },\r
-        "story_sheet": {\r
-            "model_name": "story_sheet",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_author"\r
+          }\r
         },\r
-        "sheet": {\r
-            "model_name": "sheet",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_panel"\r
+          }\r
         },\r
-        "sheet_panel": {\r
-            "model_name": "sheet_panel",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "show": {\r
+          "type": "show",\r
+          "name": "show"\r
+        }\r
+      }\r
+    },\r
+    "scroll_panel": {\r
+      "model_name": "scroll_panel",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "panel": {\r
-            "model_name": "panel",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_panel"\r
+          }\r
         },\r
-        "panel_picture": {\r
-            "model_name": "panel_picture",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_scroll": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_scroll"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "comic": {\r
+      "model_name": "comic",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "speech_balloon": {\r
-            "model_name": "speech_balloon",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "stories": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "stories"\r
+          }\r
         },\r
-        "speech": {\r
-            "model_name": "speech",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_author"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "story": {\r
+      "model_name": "story",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "balloon": {\r
-            "model_name": "balloon",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "story_sheets": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "story_sheets"\r
+          }\r
         },\r
-        "ground_picture": {\r
-            "model_name": "ground_picture",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "sheets": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "sheets"\r
+          }\r
         },\r
-        "ground_color": {\r
-            "model_name": "ground_color",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_sheet"\r
+          }\r
         },\r
-        "original_picture": {\r
-            "model_name": "original_picture",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "private_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_author"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "story_sheet": {\r
+      "model_name": "story_sheet",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "picture": {},\r
-        "resource_picture": {\r
-            "model_name": "resource_picture",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_story": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_story"\r
+          }\r
         },\r
-        "speech_balloon_template": {\r
-            "model_name": "speech_balloon_template",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_sheet"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "sheet": {\r
+      "model_name": "sheet",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "writing_format": {\r
-            "model_name": "writing_format",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "story_sheets": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "story_sheets"\r
+          }\r
         },\r
-        "license_group": {\r
-            "model_name": "license_group",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "stories": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "stories"\r
+          }\r
         },\r
-        "license": {\r
-            "model_name": "license",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "sheet_panels": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "sheet_panels"\r
+          }\r
         },\r
-        "author": {\r
-            "model_name": "author",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "panels": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "panels"\r
+          }\r
         },\r
-        "artist": {\r
-            "model_name": "",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_story": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_story"\r
+          }\r
         },\r
-        "system_picture": {\r
-            "model_name": "system_picture",\r
-            "actions": {\r
-                "index": {\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "public_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_panel"\r
+          }\r
         },\r
-        "home": {\r
-            "actions": {\r
-                "scrolls": {\r
-                    "item_name": "scroll",\r
-                    "type": "list",\r
-                    "list": {\r
-                        "list_name": "private_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_author"\r
+          }\r
         }\r
+      }\r
     },\r
-    "models": {\r
-        "Scroll": "scroll",\r
-        "scroll": {\r
-            "class_name": "Scroll",\r
-            "table_name": "scrolls",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "author": {\r
-                        "id_column": "author_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "scroll_panels": {\r
-                        "foreign_key": "scroll_id",\r
-                        "model": "scroll_panel"\r
-                    },\r
-                    "panels": {\r
-                        "through": "scroll_panel",\r
-                        "foreign_key": "scroll_id",\r
-                        "model": "panel"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "title": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "description": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "visible": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "scroll_visible_items"\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "list": {\r
-                    "name": "public"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "title"\r
-                }\r
-            }\r
+    "sheet_panel": {\r
+      "model_name": "sheet_panel",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "ScrollPanel": "scroll_panel",\r
-        "scroll_panel": {\r
-            "class_name": "ScrollPanel",\r
-            "table_name": "scroll_panels",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    },\r
-                    "scroll": {\r
-                        "id_column": "scroll_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "scroll_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_sheet"\r
+          }\r
         },\r
-        "Comic": "comic",\r
-        "comic": {\r
-            "class_name": "Comic",\r
-            "table_name": "comics",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "author": {\r
-                        "id_column": "author_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "stories": {\r
-                        "foreign_key": "comic_id",\r
-                        "list_method": "list_by_comic"\r
-                    }\r
-                },\r
-                "has_many_through": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "title": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "description": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "visible": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "comic_visible_items"\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "title"\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_panel"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "panel": {\r
+      "model_name": "panel",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "Story": "story",\r
-        "story": {\r
-            "class_name": "Story",\r
-            "table_name": "stories",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "comic": {\r
-                        "id_column": "comic_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "story_sheets": {\r
-                        "foreign_key": "story_id",\r
-                        "list_method": "list_by_story"\r
-                    },\r
-                    "sheets": {\r
-                        "through": "story_sheets",\r
-                        "foreign_key": "story_id",\r
-                        "list_method": "list_by_story"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "comic_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "title": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "description": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "visible": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "story_visible_items"\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "title_with_t"\r
-                }\r
-            }\r
+        "by_scroll": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_scroll"\r
+          }\r
         },\r
-        "StorySheet": "story_sheet",\r
-        "story_sheet": {\r
-            "class_name": "StorySheet",\r
-            "table_name": "story_sheets",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "story": {\r
-                        "id_column": "story_id"\r
-                    },\r
-                    "sheet": {\r
-                        "id_column": "sheet_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "story_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "sheet_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_sheet"\r
+          }\r
         },\r
-        "Sheet": "sheet",\r
-        "sheet": {\r
-            "class_name": "Sheet",\r
-            "table_name": "sheets",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "author": {\r
-                        "id_column": "author_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "story_sheets": {\r
-                        "foreign_key": "story_id",\r
-                        "list_method": "list_by_sheet"\r
-                    },\r
-                    "stories": {\r
-                        "through": "story_sheets",\r
-                        "foreign_key": "sheet_id",\r
-                        "list_method": "list_by_sheet"\r
-                    },\r
-                    "sheet_panels": {\r
-                        "foreign_key": "sheet_id",\r
-                        "list_method": "list_by_sheet"\r
-                    },\r
-                    "panels": {\r
-                        "through": "sheet_panels",\r
-                        "foreign_key": "sheet_id",\r
-                        "list_method": "list_by_sheet"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "visible": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "sheet_visible_items"\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_author"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "panel_picture": {\r
+      "model_name": "panel_picture",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "speech_balloon": {\r
+      "model_name": "speech_balloon",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "speech": {\r
+      "model_name": "speech",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "balloon": {\r
+      "model_name": "balloon",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "ground_picture": {\r
+      "model_name": "ground_picture",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "ground_color": {\r
+      "model_name": "ground_color",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "original_picture": {\r
+      "model_name": "original_picture",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "private_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "picture": {},\r
+    "resource_picture": {\r
+      "model_name": "resource_picture",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
         },\r
-        "SheetPanel": "sheet_panel",\r
-        "sheet_panel": {\r
-            "class_name": "SheetPanel",\r
-            "table_name": "sheet_panels",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "sheet": {\r
-                        "id_column": "sheet_id"\r
-                    },\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "sheet_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "x": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "y": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "z": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_license": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_license"\r
+          }\r
         },\r
-        "Panel": "panel",\r
-        "panel": {\r
-            "class_name": "Panel",\r
-            "table_name": "panels",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "author": {\r
-                        "id_column": "author_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "scroll_panels": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "scrolls": {\r
-                        "through": "scroll_panels",\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "sheet_panels": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "sheets": {\r
-                        "through": "sheet_panels",\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "panel_pictures": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "speech_balloons": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "ground_pictures": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    },\r
-                    "ground_colors": {\r
-                        "foreign_key": "panel_id",\r
-                        "list_method": "list_by_panel"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "border": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "publish": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "panel_visible_items"\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "plain_scenario"\r
-                }\r
-            }\r
+        "by_artist": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "by_artist"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "speech_balloon_template": {\r
+      "model_name": "speech_balloon_template",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "writing_format": {\r
+      "model_name": "writing_format",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "license_group": {\r
+      "model_name": "license_group",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "license": {\r
+      "model_name": "license",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "author": {\r
+      "model_name": "author",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "artist": {\r
+      "model_name": "",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "system_picture": {\r
+      "model_name": "system_picture",\r
+      "actions": {\r
+        "index": {\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "public_list"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "home": {\r
+      "actions": {\r
+        "scrolls": {\r
+          "item_name": "scroll",\r
+          "type": "list",\r
+          "list": {\r
+            "list_name": "private_list"\r
+          }\r
+        }\r
+      }\r
+    }\r
+  },\r
+  "lists": {\r
+    "scroll": {\r
+      "default_page_size": 25,\r
+      "max_page_size": 100,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "PanelPicture": "panel_picture",\r
-        "panel_picture": {\r
-            "class_name": "PanelPicture",\r
-            "table_name": "panel_pictures",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "x": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "y": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "link": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "url": true\r
-                    }\r
-                },\r
-                "z": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "SpeechBalloon": "speech_balloon",\r
-        "speech_balloon": {\r
-            "class_name": "SpeechBalloon",\r
-            "table_name": "speech_balloons",\r
-            "extend": "classname",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    }\r
-                },\r
-                "has_many": {},\r
-                "has_one": {\r
-                    "balloon": {\r
-                        "foreign_key": "speech_balloon_id",\r
-                        "list_method": "list_by_speech_balloon"\r
-                    },\r
-                    "speech": {\r
-                        "foreign_key": "speech_balloon_id",\r
-                        "list_method": "list_by_speech_balloon"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "speech_balloon_template_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "z": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "plain_scenario"\r
-                }\r
-            }\r
+        "scroll_panels": {\r
+          "type": "has_many",\r
+          "association_name": "scroll_panels"\r
         },\r
-        "Balloon": "balloon",\r
-        "balloon": {\r
-            "class_name": "Balloon",\r
-            "table_name": "balloons",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "speech_balloon": {\r
-                        "id_column": "speech_balloon_id"\r
-                    },\r
-                    "system_picture": {\r
-                        "id_column": "system_picture_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "speech_balloon_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "system_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "x": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "y": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "r": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "panels": {\r
+          "type": "has_many",\r
+          "association_name": "panels"\r
         },\r
-        "Speech": "speech",\r
-        "speech": {\r
-            "class_name": "Speech",\r
-            "table_name": "speeches",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "speech_balloon": {\r
-                        "id_column": "speech_balloon_id"\r
-                    },\r
-                    "writing_format": {\r
-                        "id_column": "writing_format_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "speech_balloon_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "writing_format_id": {\r
-                    "type": "number",\r
-                    "source": {\r
-                        "type": "model",\r
-                        "model": "writing_format",\r
-                        "method": "enable_list",\r
-                        "caption": "caption"\r
-                    },\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "content": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "font_size": {\r
-                    "type": "float",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "speech_font_size_items"\r
-                    }\r
-                },\r
-                "text_align": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "range": [\r
-                            0,\r
-                            3\r
-                        ]\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "speech_text_align_items"\r
-                    }\r
-                },\r
-                "fore_color": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "range": [\r
-                            0,\r
-                            16777215\r
-                        ]\r
-                    }\r
-                },\r
-                "x": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "y": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "quotes": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "filter",\r
+          "from": "author",\r
+          "filter_key": "author_id"\r
         },\r
-        "GroundPicture": "ground_picture",\r
-        "ground_picture": {\r
-            "class_name": "GroundPicture",\r
-            "table_name": "ground_pictures",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "repeat": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "range": [\r
-                            0,\r
-                            3\r
-                        ]\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "ground_picture_repeat_items"\r
-                    }\r
-                },\r
-                "x": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "y": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "z": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "through_filter",\r
+          "from": "panel",\r
+          "through": "scroll_panels",\r
+          "filter_key": "panel_id"\r
+        }\r
+      }\r
+    },\r
+    "scroll_panel": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "GroundColor": "ground_color",\r
-        "ground_color": {\r
-            "class_name": "GroundColor",\r
-            "table_name": "ground_colors",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "panel": {\r
-                        "id_column": "panel_id"\r
-                    }\r
-                },\r
-                "has_many": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "panel_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "code": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "range": [\r
-                            0,\r
-                            16777215\r
-                        ]\r
-                    }\r
-                },\r
-                "orientation": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "range": [\r
-                            0,\r
-                            1\r
-                        ]\r
-                    },\r
-                    "source": {\r
-                        "type": "magic_number",\r
-                        "key": "ground_color_orientation_items"\r
-                    }\r
-                },\r
-                "xy": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "wh": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "z": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 1\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "OriginalPicture": "original_picture",\r
-        "original_picture": {\r
-            "class_name": "OriginalPicture",\r
-            "table_name": "original_pictures",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "artist": {\r
-                        "id_column": "artist_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "pictures": {\r
-                        "foreign_key": "original_picture_id",\r
-                        "list_method": "list_by_original_picture"\r
-                    }\r
-                },\r
-                "has_one": {\r
-                    "resource_picture": {\r
-                        "foreign_key": "original_picture_id",\r
-                        "list_method": "list_by_original_picture"\r
-                    }\r
-                }\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "ext": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "filesize": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "artist_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "md5": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "uploaded_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "published_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "stopped_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_scroll": {\r
+          "type": "filter",\r
+          "from": "scroll",\r
+          "filter_key": "scroll_id"\r
         },\r
-        "Picture": "picture",\r
-        "picture": {\r
-            "class_name": "Picture",\r
-            "table_name": "pictures",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "license": {\r
-                        "id_column": "license_id"\r
-                    },\r
-                    "artist": {\r
-                        "id_column": "artist_id"\r
-                    }\r
-                },\r
-                "has_many": {},\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "original_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "revision": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "ext": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "filesize": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "artist_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "license_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "md5": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "artist_name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "credit": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "filter",\r
+          "from": "panel",\r
+          "filter_key": "panel_id"\r
+        }\r
+      }\r
+    },\r
+    "comic": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "ResourcePicture": "resource_picture",\r
-        "resource_picture": {\r
-            "class_name": "ResourcePicture",\r
-            "table_name": "resource_pictures",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "license": {\r
-                        "id_column": "license_id"\r
-                    },\r
-                    "artist": {\r
-                        "id_column": "artist_id"\r
-                    }\r
-                },\r
-                "has_many": {},\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "original_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "revision": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "ext": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "filesize": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "artist_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "license_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "md5": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "artist_name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "credit": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "SpeechBalloonTemplate": "speech_balloon_template",\r
-        "speech_balloon_template": {\r
-            "class_name": "SpeechBalloonTemplate",\r
-            "table_name": "speech_balloon_templates",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "system_picture": {\r
-                        "id_column": "system_picture_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "speech_balloons": {\r
-                        "foreign_key": "speech_balloon_template_id",\r
-                        "list_method": "list_by_speech_balloon_template"\r
-                    },\r
-                    "panels": {\r
-                        "through": "speech_balloons",\r
-                        "foreign_key": "speech_balloon_template_id",\r
-                        "list_method": "list_by_speech_balloon_template"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "t": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true,\r
-                        "min": 0\r
-                    }\r
-                },\r
-                "system_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "enable_list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                }\r
-            }\r
+        "stories": {\r
+          "type": "has_many",\r
+          "association_name": "stories"\r
         },\r
-        "WritingFormat": "writing_format",\r
-        "writing_format": {\r
-            "class_name": "WritingFormat",\r
-            "table_name": "writing_formats",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "system_picture": {\r
-                        "id_column": "system_picture_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "speeches": {\r
-                        "foreign_key": "writing_format_id",\r
-                        "list_method": "list_by_writing_format"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "system_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "enable_list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "filter",\r
+          "from": "author",\r
+          "filter_key": "author_id"\r
+        }\r
+      }\r
+    },\r
+    "story": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "LicenseGroup": "license_group",\r
-        "license_group": {\r
-            "class_name": "LicenseGroup",\r
-            "table_name": "license_groups",\r
-            "associations": {\r
-                "belongs_to": {},\r
-                "has_many": {\r
-                    "licenses": {\r
-                        "foreign_key": "license_group_id",\r
-                        "list_method": "list_by_license_group"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "classname": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "url": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "License": "license",\r
-        "license": {\r
-            "class_name": "License",\r
-            "table_name": "licenses",\r
-            "associations": {\r
-                "belongs_to": {\r
-                    "license_group": {\r
-                        "id_column": "license_group_id"\r
-                    },\r
-                    "system_picture": {\r
-                        "id_column": "system_picture_id"\r
-                    }\r
-                },\r
-                "has_many": {\r
-                    "resource_pictures": {\r
-                        "foreign_key": "license_id",\r
-                        "list_method": "list_by_license"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "license_group_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "system_picture_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "url": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "settings": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "credit_pictures": {\r
-                    "type": "text",\r
-                    "rules": {}\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "story_sheets": {\r
+          "type": "has_many",\r
+          "association_name": "story_sheets"\r
         },\r
-        "Author": "author",\r
-        "author": {\r
-            "class_name": "Author",\r
-            "table_name": "authors",\r
-            "associations": {\r
-                "belongs_to": {},\r
-                "has_many": {\r
-                    "scrolls": {\r
-                        "foreign_key": "author_id",\r
-                        "list_method": "list_by_author"\r
-                    },\r
-                    "comics": {\r
-                        "foreign_key": "author_id",\r
-                        "list_method": "list_by_author"\r
-                    },\r
-                    "stories": {\r
-                        "foreign_key": "author_id",\r
-                        "list_method": "list_by_author"\r
-                    },\r
-                    "sheets": {\r
-                        "foreign_key": "author_id",\r
-                        "list_method": "list_by_author"\r
-                    },\r
-                    "panels": {\r
-                        "foreign_key": "author_id",\r
-                        "list_method": "list_by_author"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "user_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "name"\r
-                }\r
-            }\r
+        "sheets": {\r
+          "type": "has_many",\r
+          "association_name": "sheets"\r
         },\r
-        "Artist": "artist",\r
-        "artist": {\r
-            "class_name": "Artist",\r
-            "table_name": "artists",\r
-            "associations": {\r
-                "belongs_to": {},\r
-                "has_many": {\r
-                    "resource_pictures": {\r
-                        "foreign_key": "artist_id",\r
-                        "list_method": "list_by_artist"\r
-                    }\r
-                },\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "name": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "author_id": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            },\r
-            "select": {\r
-                "method": "list",\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "name"\r
-                }\r
-            }\r
+        "by_comic": {\r
+          "type": "filter",\r
+          "from": "comic",\r
+          "filter_key": "comic_id"\r
         },\r
-        "SystemPicture": "system_picture",\r
-        "system_picture": {\r
-            "class_name": "SystemPicture",\r
-            "table_name": "system_pictures",\r
-            "associations": {\r
-                "belongs_to": {},\r
-                "has_many": {},\r
-                "has_one": {}\r
-            },\r
-            "attributes": {\r
-                "id": {\r
-                    "type": "number",\r
-                    "primary_key": 1,\r
-                    "rules": {\r
-                        "number": true\r
-                    }\r
-                },\r
-                "ext": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "width": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "height": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "filesize": {\r
-                    "type": "number",\r
-                    "rules": {\r
-                        "required": true,\r
-                        "number": true\r
-                    }\r
-                },\r
-                "md5": {\r
-                    "type": "text",\r
-                    "rules": {\r
-                        "required": true\r
-                    }\r
-                },\r
-                "created_at": {\r
-                    "type": "datetime"\r
-                },\r
-                "updated_at": {\r
-                    "type": "datetime"\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "through_filter",\r
+          "from": "sheet",\r
+          "through": "sheet_panels",\r
+          "filter_key": "sheet_id"\r
         }\r
+      }\r
     },\r
-    "lists": {\r
-        "scroll": {\r
-            "default_page_size": 25,\r
-            "max_page_size": 100,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "scroll_panels": {\r
-                    "type": "has_many",\r
-                    "association_name": "scroll_panels"\r
-                },\r
-                "panels": {\r
-                    "type": "has_many",\r
-                    "association_name": "panels"\r
-                },\r
-                "by_panel": {\r
-                    "type": "throughfilter",\r
-                    "filter_key": "panel_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+    "story_sheet": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "scroll_panel": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "by_scroll": {\r
-                    "type": "filter",\r
-                    "from": "scroll",\r
-                    "filter_key": "scroll_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                },\r
-                "by_panel": {\r
-                    "type": "filter",\r
-                    "filter_key": "panel_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "comic": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "stories": {\r
-                    "type": "has_many",\r
-                    "association_name": "stories"\r
-                }\r
-            }\r
+        "by_story": {\r
+          "type": "filter",\r
+          "from": "story",\r
+          "filter_key": "story_id"\r
         },\r
-        "story": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "story_sheets": {\r
-                    "type": "has_many",\r
-                    "association_name": "story_sheets"\r
-                },\r
-                "sheets": {\r
-                    "type": "has_many",\r
-                    "association_name": "sheets"\r
-                },\r
-                "by_comic": {\r
-                    "type": "filter",\r
-                    "filter_key": "comic_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "filter",\r
+          "with": "story",\r
+          "from": "sheet",\r
+          "filter_key": "sheet_id"\r
+        }\r
+      }\r
+    },\r
+    "sheet": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "story_sheet": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "by_story": {\r
-                    "type": "filter",\r
-                    "filter_key": "story_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                },\r
-                "by_sheet": {\r
-                    "type": "filter",\r
-                    "filter_key": "sheet_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "sheet": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "story_sheets": {\r
-                    "type": "has_many",\r
-                    "association_name": "story_sheets"\r
-                },\r
-                "sheet_panels": {\r
-                    "type": "has_many",\r
-                    "association_name": "sheet_panels"\r
-                }\r
-            }\r
+        "story_sheets": {\r
+          "type": "has_many",\r
+          "association_name": "story_sheets"\r
         },\r
-        "sheet_panel": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "private_list": {\r
-                    "type": "private"\r
-                },\r
-                "by_sheet": {\r
-                    "type": "filter",\r
-                    "filter_key": "sheet_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                },\r
-                "by_panel": {\r
-                    "type": "filter",\r
-                    "filter_key": "panel_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+        "stories": {\r
+          "type": "has_many",\r
+          "association_name": "stories"\r
         },\r
-        "panel": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                },\r
-                "by_scroll": {\r
-                    "type": "through_filter",\r
-                    "from": "scroll",\r
-                    "through": "scroll_panels",\r
-                    "filter_key": "scroll_id",\r
-                    "list": {\r
-                        "method": "filtered_list"\r
-                    }\r
-                }\r
-            }\r
+        "sheet_panels": {\r
+          "type": "has_many",\r
+          "association_name": "sheet_panels"\r
         },\r
-        "panel_picture": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "panels": {\r
+          "type": "has_many",\r
+          "association_name": "panels"\r
         },\r
-        "speech_balloon": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_story": {\r
+          "type": "through_filter",\r
+          "from": "story",\r
+          "through": "story_sheets",\r
+          "filter_key": "story_id"\r
         },\r
-        "speech": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "through_filter",\r
+          "from": "panel",\r
+          "through": "sheet_panels",\r
+          "filter_key": "panel_id"\r
         },\r
-        "balloon": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "filter",\r
+          "from": "author",\r
+          "filter_key": "author_id"\r
+        }\r
+      }\r
+    },\r
+    "sheet_panel": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "ground_picture": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "private_list": {\r
+          "type": "private"\r
         },\r
-        "ground_color": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "filter",\r
+          "association_name": "sheet_panels",\r
+          "from": "sheet",\r
+          "filter_key": "sheet_id"\r
         },\r
-        "original_picture": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "private_list": {\r
-                    "type": "private"\r
-                }\r
-            }\r
+        "by_panel": {\r
+          "type": "filter",\r
+          "from": "panel",\r
+          "filter_key": "panel_id"\r
+        }\r
+      }\r
+    },\r
+    "panel": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "picture": {},\r
-        "resource_picture": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "scroll_panels": {\r
+          "type": "has_many",\r
+          "association_name": "scroll_panels"\r
         },\r
-        "speech_balloon_template": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "scrolls": {\r
+          "type": "has_many",\r
+          "association_name": "scrolls"\r
         },\r
-        "writing_format": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "sheet_panels": {\r
+          "type": "has_many",\r
+          "association_name": "sheet_panels"\r
         },\r
-        "license_group": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "sheets": {\r
+          "type": "has_many",\r
+          "association_name": "sheets"\r
         },\r
-        "license": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
-        },\r
-        "author": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_scroll": {\r
+          "type": "through_filter",\r
+          "from": "scroll",\r
+          "through": "scroll_panels",\r
+          "filter_key": "scroll_id"\r
         },\r
-        "artist": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_sheet": {\r
+          "type": "through_filter",\r
+          "from": "sheet",\r
+          "through": "sheet_panels",\r
+          "filter_key": "sheet_id"\r
         },\r
-        "system_picture": {\r
-            "default_page_size": 20,\r
-            "lists": {\r
-                "public_list": {\r
-                    "type": "public"\r
-                }\r
-            }\r
+        "by_author": {\r
+          "type": "filter",\r
+          "from": "author",\r
+          "filter_key": "author_id"\r
         }\r
+      }\r
     },\r
-    "system_resources": {\r
-        "licenses": {\r
-            "pettanr_creative_commons_v30_licenses": "PettanrCreativeCommonsV30Licenses",\r
-            "pettanr_pettan_commons_v01_licenses": "PettanrPettanCommonsV01Licenses",\r
-            "pettanr_pettan_protected_v01_licenses": "PettanrPettanProtectedV01Licenses",\r
-            "pettanr_pettan_public_v01_licenses": "PettanrPettanPublicV01Licenses",\r
-            "pettanr_public_domain_v01_licenses": "PettanrPublicDomainV01Licenses",\r
-            "pettanr_unknown_v01_licenses": "PettanrUnknownV01Licenses"\r
-        },\r
-        "elements": {\r
-            "PanelPicture": "panel_pictures",\r
-            "SpeechBalloon": "speech_balloons",\r
-            "GroundPicture": "ground_pictures",\r
-            "GroundColor": "ground_colors"\r
-        },\r
-        "speech_balloon_templates": {\r
-            "CircleSpeechBalloon": "circle_speech_balloon",\r
-            "PlainSpeechBalloon": "plain_speech_balloon",\r
-            "SquareSpeechBalloon": "square_speech_balloon"\r
-        },\r
-        "writing_formats": {\r
-            "SimpleFormat": "pettanr_simple_format"\r
+    "panel_picture": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         }\r
+      }\r
     },\r
-    "magic_numbers": {\r
-        "run_mode": 1,\r
-        "thumbnail_width": 64,\r
-        "thumbnail_height": 64,\r
-        "profile": {\r
-            "users": {\r
-                "caption": "ペンギン王国",\r
-                "url": "http://localhost:3001/",\r
-                "description": "ペンギン王国はペンギン素材を豊富に用意したペンギンマニアのサイトです。"\r
-            },\r
-            "admins": {\r
-                "caption": "site name for admin",\r
-                "url": "http://your.site.url/admins/",\r
-                "description": "admin register"\r
-            },\r
-            "demand_users": {\r
-                "caption": "provider name",\r
-                "url": "http://your.site.url/demanders/",\r
-                "description": "provider description"\r
-            }\r
+    "speech_balloon": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "speech": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "balloon": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "ground_picture": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "ground_color": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "original_picture": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "private_list": {\r
+          "type": "private"\r
+        }\r
+      }\r
+    },\r
+    "picture": {},\r
+    "resource_picture": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
         },\r
-        "provider_sources": [\r
-            "http://sourceforge.jp/projects/pettanr/wiki/ProviderSource/attach/provider_source.json"\r
-        ]\r
+        "by_license": {\r
+          "type": "filter",\r
+          "from": "license",\r
+          "filter_key": "license_id"\r
+        },\r
+        "by_artist": {\r
+          "type": "filter",\r
+          "from": "artist",\r
+          "filter_key": "artist_id"\r
+        }\r
+      }\r
     },\r
-    "select_items": {\r
-        "provider_status_status_items": [\r
-            [\r
-                "select_items.provider_status.status.waiting",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.provider_status.status.receiving",\r
-                1\r
-            ]\r
+    "speech_balloon_template": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "writing_format": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "license_group": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "license": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "author": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "artist": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "system_picture": {\r
+      "default_page_size": 20,\r
+      "lists": {\r
+        "public_list": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    }\r
+  },\r
+  "system_resources": {\r
+    "licenses": {\r
+      "pettanr_creative_commons_v30_licenses": "PettanrCreativeCommonsV30Licenses",\r
+      "pettanr_pettan_commons_v01_licenses": "PettanrPettanCommonsV01Licenses",\r
+      "pettanr_pettan_protected_v01_licenses": "PettanrPettanProtectedV01Licenses",\r
+      "pettanr_pettan_public_v01_licenses": "PettanrPettanPublicV01Licenses",\r
+      "pettanr_public_domain_v01_licenses": "PettanrPublicDomainV01Licenses",\r
+      "pettanr_unknown_v01_licenses": "PettanrUnknownV01Licenses"\r
+    },\r
+    "elements": {\r
+      "PanelPicture": "panel_pictures",\r
+      "SpeechBalloon": "speech_balloons",\r
+      "GroundPicture": "ground_pictures",\r
+      "GroundColor": "ground_colors"\r
+    },\r
+    "speech_balloon_templates": {\r
+      "CircleSpeechBalloon": "circle_speech_balloon",\r
+      "PlainSpeechBalloon": "plain_speech_balloon",\r
+      "SquareSpeechBalloon": "square_speech_balloon"\r
+    },\r
+    "writing_formats": {\r
+      "SimpleFormat": "pettanr_simple_format"\r
+    }\r
+  },\r
+  "magic_numbers": {\r
+    "run_mode": 1,\r
+    "thumbnail_width": 64,\r
+    "thumbnail_height": 64,\r
+    "profile": {\r
+      "users": {\r
+        "caption": "ペンギン王国",\r
+        "url": "http://localhost:3001/",\r
+        "description": "ペンギン王国はペンギン素材を豊富に用意したペンギンマニアのサイトです。"\r
+      },\r
+      "admins": {\r
+        "caption": "site name for admin",\r
+        "url": "http://your.site.url/admins/",\r
+        "description": "admin register"\r
+      },\r
+      "demand_users": {\r
+        "caption": "provider name",\r
+        "url": "http://your.site.url/demanders/",\r
+        "description": "provider description"\r
+      }\r
+    },\r
+    "provider_sources": [\r
+      "http://sourceforge.jp/projects/pettanr/wiki/ProviderSource/attach/provider_source.json"\r
+    ]\r
+  },\r
+  "select_items": {\r
+    "provider_status_status_items": [\r
+      [\r
+        "select_items.provider_status.status.waiting",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.provider_status.status.receiving",\r
+        1\r
+      ]\r
+    ],\r
+    "demander_status_status_items": [\r
+      [\r
+        "select_items.demander_status.status.waiting",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.demander_status.status.rejected",\r
+        1\r
+      ],\r
+      [\r
+        "select_items.demander_status.status.requesting",\r
+        2\r
+      ],\r
+      [\r
+        "select_items.demander_status.status.approved",\r
+        3\r
+      ]\r
+    ],\r
+    "scroll_visible_items": [\r
+      [\r
+        "select_items.scroll.visible.private",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.scroll.visible.public",\r
+        1\r
+      ]\r
+    ],\r
+    "comic_visible_items": [\r
+      [\r
+        "select_items.comic.visible.private",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.comic.visible.public",\r
+        1\r
+      ]\r
+    ],\r
+    "story_visible_items": [\r
+      [\r
+        "select_items.story.visible.private",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.story.visible.public",\r
+        1\r
+      ]\r
+    ],\r
+    "sheet_visible_items": [\r
+      [\r
+        "select_items.sheet.visible.private",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.sheet.visible.public",\r
+        1\r
+      ]\r
+    ],\r
+    "panel_visible_items": [\r
+      [\r
+        "select_items.panel.visible.private",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.panel.visible.public",\r
+        1\r
+      ]\r
+    ],\r
+    "ground_picture_repeat_items": [\r
+      [\r
+        "select_items.ground_pictures.repeat.repeat",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.ground_pictures.repeat.repeat-x",\r
+        1\r
+      ],\r
+      [\r
+        "select_items.ground_pictures.repeat.repeat-y",\r
+        2\r
+      ],\r
+      [\r
+        "select_items.ground_pictures.repeat.no-repeat",\r
+        3\r
+      ]\r
+    ],\r
+    "ground_color_orientation_items": [\r
+      [\r
+        "select_items.ground_color.orientation.horizontal",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.ground_color.orientation.vertical",\r
+        1\r
+      ]\r
+    ],\r
+    "speech_font_size_items": [\r
+      [\r
+        "select_items.speeches.font_size.ultra_small",\r
+        0.2\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.very_small",\r
+        0.4\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.small",\r
+        0.6\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.semi_small",\r
+        0.8\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.normal",\r
+        1\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.semi_large",\r
+        1.5\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.large",\r
+        2\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.very_large",\r
+        3.5\r
+      ],\r
+      [\r
+        "select_items.speeches.font_size.ultra_large",\r
+        5\r
+      ]\r
+    ],\r
+    "speech_text_align_items": [\r
+      [\r
+        "select_items.speeches.text_align.none",\r
+        0\r
+      ],\r
+      [\r
+        "select_items.speeches.text_align.left",\r
+        1\r
+      ],\r
+      [\r
+        "select_items.speeches.text_align.right",\r
+        2\r
+      ],\r
+      [\r
+        "select_items.speeches.text_align.center",\r
+        3\r
+      ]\r
+    ]\r
+  },\r
+  "locals": {\r
+    "profilers": {\r
+      "scroll": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "title",\r
+          "description",\r
+          "visible",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "demander_status_status_items": [\r
-            [\r
-                "select_items.demander_status.status.waiting",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.demander_status.status.rejected",\r
-                1\r
-            ],\r
-            [\r
-                "select_items.demander_status.status.requesting",\r
-                2\r
-            ],\r
-            [\r
-                "select_items.demander_status.status.approved",\r
-                3\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "author"\r
+          ],\r
+          "has_many": [\r
+            "scroll_panels.by_scroll",\r
+            "panels.by_scroll"\r
+          ]\r
+        }\r
+      },\r
+      "scroll_panel": {\r
+        "lists": {},\r
+        "columns": [\r
+          "id",\r
+          "scroll_id",\r
+          "panel_id",\r
+          "t",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "scroll_visible_items": [\r
-            [\r
-                "select_items.scroll.visible.private",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.scroll.visible.public",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "scroll",\r
+            "panel"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "comic": {\r
+        "lists": {\r
+          "stories.by_comic": {\r
+            "model_name": "story",\r
+            "list_name": "by_comic"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "title",\r
+          "description",\r
+          "visible",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "comic_visible_items": [\r
-            [\r
-                "select_items.comic.visible.private",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.comic.visible.public",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "author"\r
+          ],\r
+          "has_many": [\r
+            "stories.by_comic"\r
+          ]\r
+        }\r
+      },\r
+      "story": {\r
+        "lists": {\r
+          "story_sheets.by_story": {\r
+            "model_name": "story_sheet",\r
+            "list_name": "by_story"\r
+          },\r
+          "sheets.by_story": {\r
+            "model_name": "sheet",\r
+            "list_name": "by_sheet"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "comic_id",\r
+          "title",\r
+          "description",\r
+          "t",\r
+          "visible",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "story_visible_items": [\r
-            [\r
-                "select_items.story.visible.private",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.story.visible.public",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "comic"\r
+          ],\r
+          "has_many": [\r
+            "story_sheets.by_story",\r
+            "sheets.by_story"\r
+          ]\r
+        }\r
+      },\r
+      "story_sheet": {\r
+        "lists": {},\r
+        "columns": [\r
+          "id",\r
+          "story_id",\r
+          "sheet_id",\r
+          "t",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "sheet_visible_items": [\r
-            [\r
-                "select_items.sheet.visible.private",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.sheet.visible.public",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "story",\r
+            "sheet"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "sheet": {\r
+        "lists": {\r
+          "story_sheets.by_sheet": {\r
+            "model_name": "story_sheet",\r
+            "list_name": "by_sheet"\r
+          },\r
+          "stories.by_sheet": {\r
+            "model_name": "story",\r
+            "list_name": "by_sheet"\r
+          },\r
+          "sheet_panels.by_sheet": {\r
+            "model_name": "sheet_panel",\r
+            "list_name": "by_sheet"\r
+          },\r
+          "panels.by_sheet": {\r
+            "model_name": "panel",\r
+            "list_name": "by_sheet"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "caption",\r
+          "width",\r
+          "height",\r
+          "visible",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "panel_visible_items": [\r
-            [\r
-                "select_items.panel.visible.private",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.panel.visible.public",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "author"\r
+          ],\r
+          "has_many": [\r
+            "story_sheets.by_sheet",\r
+            "stories.by_sheet",\r
+            "sheet_panels.by_sheet",\r
+            "panels.by_sheet"\r
+          ]\r
+        }\r
+      },\r
+      "sheet_panel": {\r
+        "lists": {},\r
+        "columns": [\r
+          "id",\r
+          "sheet_id",\r
+          "panel_id",\r
+          "x",\r
+          "y",\r
+          "z",\r
+          "t",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "ground_picture_repeat_items": [\r
-            [\r
-                "select_items.ground_pictures.repeat.repeat",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.ground_pictures.repeat.repeat-x",\r
-                1\r
-            ],\r
-            [\r
-                "select_items.ground_pictures.repeat.repeat-y",\r
-                2\r
-            ],\r
-            [\r
-                "select_items.ground_pictures.repeat.no-repeat",\r
-                3\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "sheet",\r
+            "panel"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "panel": {\r
+        "lists": {\r
+          "scroll_panels.by_panel": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_panel"\r
+          },\r
+          "scrolls.by_panel": {\r
+            "model_name": "scroll",\r
+            "list_name": "by_panel"\r
+          },\r
+          "sheet_panels.by_panel": {\r
+            "model_name": "sheet_panel",\r
+            "list_name": "by_panel"\r
+          },\r
+          "sheets.by_panel": {\r
+            "model_name": "sheet",\r
+            "list_name": "by_panel"\r
+          },\r
+          "panel_pictures.by_panel": {\r
+            "model_name": "panel_picture",\r
+            "list_name": "by_panel"\r
+          },\r
+          "speech_balloons.by_panel": {\r
+            "model_name": "speech_balloon",\r
+            "list_name": "by_panel"\r
+          },\r
+          "ground_pictures.by_panel": {\r
+            "model_name": "ground_picture",\r
+            "list_name": "by_panel"\r
+          },\r
+          "ground_colors.by_panel": {\r
+            "model_name": "ground_color",\r
+            "list_name": "by_panel"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "width",\r
+          "height",\r
+          "border",\r
+          "caption",\r
+          "publish",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "ground_color_orientation_items": [\r
-            [\r
-                "select_items.ground_color.orientation.horizontal",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.ground_color.orientation.vertical",\r
-                1\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "author"\r
+          ],\r
+          "has_many": [\r
+            "scroll_panels.by_panel",\r
+            "scrolls.by_panel",\r
+            "sheet_panels.by_panel",\r
+            "sheets.by_panel",\r
+            "panel_pictures.by_panel",\r
+            "speech_balloons.by_panel",\r
+            "ground_pictures.by_panel",\r
+            "ground_colors.by_panel"\r
+          ]\r
+        }\r
+      },\r
+      "panel_picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "panel_id",\r
+          "picture_id",\r
+          "caption",\r
+          "x",\r
+          "y",\r
+          "width",\r
+          "height",\r
+          "link",\r
+          "z",\r
+          "t",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "speech_font_size_items": [\r
-            [\r
-                "select_items.speeches.font_size.ultra_small",\r
-                0.2\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.very_small",\r
-                0.4\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.small",\r
-                0.6\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.semi_small",\r
-                0.8\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.normal",\r
-                1\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.semi_large",\r
-                1.5\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.large",\r
-                2\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.very_large",\r
-                3.5\r
-            ],\r
-            [\r
-                "select_items.speeches.font_size.ultra_large",\r
-                5\r
-            ]\r
+        "associations": {\r
+          "belongs_to": [\r
+            "panel"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "speech_balloon": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "panel_id",\r
+          "speech_balloon_template_id",\r
+          "classname",\r
+          "z",\r
+          "t",\r
+          "settings",\r
+          "caption",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "speech_text_align_items": [\r
-            [\r
-                "select_items.speeches.text_align.none",\r
-                0\r
-            ],\r
-            [\r
-                "select_items.speeches.text_align.left",\r
-                1\r
-            ],\r
-            [\r
-                "select_items.speeches.text_align.right",\r
-                2\r
-            ],\r
-            [\r
-                "select_items.speeches.text_align.center",\r
-                3\r
-            ]\r
-        ]\r
-    },\r
-    "locals": {\r
-        "profilers": {\r
-            "scroll": {\r
-                "lists": {\r
-                    "scroll_panels.by_scroll": {\r
-                        "model_name": "scroll_panel",\r
-                        "list_name": "by_scroll"\r
-                    },\r
-                    "panels.by_scroll": {\r
-                        "model_name": "panel",\r
-                        "list_name": "by_scroll"\r
-                    }\r
-                },\r
-                "columns": [\r
-                    "id",\r
-                    "title",\r
-                    "description",\r
-                    "visible",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "author"\r
-                    ],\r
-                    "has_many": [\r
-                        "scroll_panels.by_scroll",\r
-                        "panels.by_scroll"\r
-                    ]\r
-                }\r
-            },\r
-            "scroll_panel": {\r
-                "columns": [\r
-                    "id",\r
-                    "scroll_id",\r
-                    "panel_id",\r
-                    "t",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "scroll",\r
-                        "panel"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "comic": {\r
-                "columns": [\r
-                    "id",\r
-                    "title",\r
-                    "description",\r
-                    "visible",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "author"\r
-                    ],\r
-                    "has_many": [\r
-                        "stories"\r
-                    ]\r
-                }\r
-            },\r
-            "story": {\r
-                "columns": [\r
-                    "id",\r
-                    "comic_id",\r
-                    "title",\r
-                    "description",\r
-                    "t",\r
-                    "visible",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "comic"\r
-                    ],\r
-                    "has_many": [\r
-                        "story_sheets",\r
-                        "sheets"\r
-                    ]\r
-                }\r
-            },\r
-            "story_sheet": {\r
-                "columns": [\r
-                    "id",\r
-                    "story_id",\r
-                    "sheet_id",\r
-                    "t",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "story",\r
-                        "sheet"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "sheet": {\r
-                "columns": [\r
-                    "id",\r
-                    "caption",\r
-                    "width",\r
-                    "height",\r
-                    "visible",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "author"\r
-                    ],\r
-                    "has_many": [\r
-                        "story_sheets",\r
-                        "stories",\r
-                        "sheet_panels",\r
-                        "panels"\r
-                    ]\r
-                }\r
-            },\r
-            "sheet_panel": {\r
-                "columns": [\r
-                    "id",\r
-                    "sheet_id",\r
-                    "panel_id",\r
-                    "x",\r
-                    "y",\r
-                    "z",\r
-                    "t",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "sheet",\r
-                        "panel"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "panel": {\r
-                "columns": [\r
-                    "id",\r
-                    "width",\r
-                    "height",\r
-                    "border",\r
-                    "caption",\r
-                    "publish",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "author"\r
-                    ],\r
-                    "has_many": [\r
-                        "scroll_panels",\r
-                        "scrolls",\r
-                        "sheet_panels",\r
-                        "sheets",\r
-                        "panel_pictures",\r
-                        "speech_balloons",\r
-                        "ground_pictures",\r
-                        "ground_colors"\r
-                    ]\r
-                }\r
-            },\r
-            "panel_picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "panel_id",\r
-                    "picture_id",\r
-                    "caption",\r
-                    "x",\r
-                    "y",\r
-                    "width",\r
-                    "height",\r
-                    "link",\r
-                    "z",\r
-                    "t",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "panel"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "speech_balloon": {\r
-                "columns": [\r
-                    "id",\r
-                    "panel_id",\r
-                    "speech_balloon_template_id",\r
-                    "classname",\r
-                    "z",\r
-                    "t",\r
-                    "settings",\r
-                    "caption",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "panel"\r
-                    ],\r
-                    "has_many": [],\r
-                    "has_one": [\r
-                        "balloon",\r
-                        "speech"\r
-                    ]\r
-                }\r
-            },\r
-            "speech": {\r
-                "columns": [\r
-                    "id",\r
-                    "speech_balloon_id",\r
-                    "writing_format_id",\r
-                    "content",\r
-                    "font_size",\r
-                    "text_align",\r
-                    "fore_color",\r
-                    "x",\r
-                    "y",\r
-                    "width",\r
-                    "height",\r
-                    "quotes",\r
-                    "settings",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "speech_balloon",\r
-                        "writing_format"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "balloon": {\r
-                "columns": [\r
-                    "id",\r
-                    "speech_balloon_id",\r
-                    "system_picture_id",\r
-                    "x",\r
-                    "y",\r
-                    "width",\r
-                    "height",\r
-                    "r",\r
-                    "settings",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "speech_balloon",\r
-                        "system_picture"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "ground_picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "panel_id",\r
-                    "picture_id",\r
-                    "caption",\r
-                    "repeat",\r
-                    "x",\r
-                    "y",\r
-                    "z",\r
-                    "t",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "panel"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "ground_color": {\r
-                "columns": [\r
-                    "id",\r
-                    "panel_id",\r
-                    "caption",\r
-                    "code",\r
-                    "orientation",\r
-                    "xy",\r
-                    "wh",\r
-                    "z",\r
-                    "t",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "panel"\r
-                    ],\r
-                    "has_many": []\r
-                }\r
-            },\r
-            "original_picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "ext",\r
-                    "width",\r
-                    "height",\r
-                    "filesize",\r
-                    "artist_id",\r
-                    "md5",\r
-                    "uploaded_at",\r
-                    "published_at",\r
-                    "stopped_at",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "artist"\r
-                    ],\r
-                    "has_many": [\r
-                        "pictures"\r
-                    ],\r
-                    "has_one": [\r
-                        "resource_picture"\r
-                    ]\r
-                }\r
-            },\r
-            "picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "original_picture_id",\r
-                    "revision",\r
-                    "ext",\r
-                    "width",\r
-                    "height",\r
-                    "filesize",\r
-                    "artist_id",\r
-                    "license_id",\r
-                    "md5",\r
-                    "artist_name",\r
-                    "credit",\r
-                    "settings",\r
-                    "classname",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "license",\r
-                        "artist"\r
-                    ],\r
-                    "has_many": [],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "resource_picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "original_picture_id",\r
-                    "revision",\r
-                    "ext",\r
-                    "width",\r
-                    "height",\r
-                    "filesize",\r
-                    "artist_id",\r
-                    "license_id",\r
-                    "md5",\r
-                    "artist_name",\r
-                    "credit",\r
-                    "settings",\r
-                    "picture_id",\r
-                    "classname",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "license",\r
-                        "artist"\r
-                    ],\r
-                    "has_many": [],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "speech_balloon_template": {\r
-                "columns": [\r
-                    "id",\r
-                    "name",\r
-                    "classname",\r
-                    "caption",\r
-                    "t",\r
-                    "system_picture_id",\r
-                    "settings",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "system_picture"\r
-                    ],\r
-                    "has_many": [\r
-                        "speech_balloons",\r
-                        "panels"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "writing_format": {\r
-                "columns": [\r
-                    "id",\r
-                    "name",\r
-                    "classname",\r
-                    "caption",\r
-                    "system_picture_id",\r
-                    "settings",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "system_picture"\r
-                    ],\r
-                    "has_many": [\r
-                        "speeches"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "license_group": {\r
-                "columns": [\r
-                    "id",\r
-                    "name",\r
-                    "classname",\r
-                    "caption",\r
-                    "url",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [],\r
-                    "has_many": [\r
-                        "licenses"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "license": {\r
-                "columns": [\r
-                    "id",\r
-                    "license_group_id",\r
-                    "name",\r
-                    "caption",\r
-                    "system_picture_id",\r
-                    "url",\r
-                    "settings",\r
-                    "credit_pictures",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [\r
-                        "license_group",\r
-                        "system_picture"\r
-                    ],\r
-                    "has_many": [\r
-                        "resource_pictures"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "author": {\r
-                "columns": [\r
-                    "id",\r
-                    "name",\r
-                    "user_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [],\r
-                    "has_many": [\r
-                        "scrolls",\r
-                        "comics",\r
-                        "stories",\r
-                        "sheets",\r
-                        "panels"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "artist": {\r
-                "columns": [\r
-                    "id",\r
-                    "name",\r
-                    "author_id",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [],\r
-                    "has_many": [\r
-                        "resource_pictures"\r
-                    ],\r
-                    "has_one": []\r
-                }\r
-            },\r
-            "system_picture": {\r
-                "columns": [\r
-                    "id",\r
-                    "ext",\r
-                    "width",\r
-                    "height",\r
-                    "filesize",\r
-                    "md5",\r
-                    "created_at",\r
-                    "updated_at"\r
-                ],\r
-                "associations": {\r
-                    "belongs_to": [],\r
-                    "has_many": [],\r
-                    "has_one": []\r
-                }\r
-            }\r
+        "associations": {\r
+          "belongs_to": [\r
+            "panel"\r
+          ],\r
+          "has_many": [],\r
+          "has_one": [\r
+            "balloon",\r
+            "speech"\r
+          ]\r
+        }\r
+      },\r
+      "speech": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
         },\r
-        "filers": {\r
-            "scroll": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "title",\r
-                    "link": {\r
-                        "type": "action",\r
-                        "name": "play"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "default"\r
-                }\r
-            },\r
-            "scroll_panel": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "comic": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "title"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "default"\r
-                }\r
-            },\r
-            "story": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "title_with_t",\r
-                    "link": {\r
-                        "type": "action",\r
-                        "name": "play"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "default"\r
-                }\r
-            },\r
-            "story_sheet": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "sheet": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption",\r
-                    "link": {\r
-                        "type": "action",\r
-                        "name": "play"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "default"\r
-                }\r
-            },\r
-            "sheet_panel": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "panel": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "plain_scenario",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "default"\r
-                }\r
-            },\r
-            "panel_picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "speech_balloon": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "plain_scenario",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "speech": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "content",\r
-                    "link": {\r
-                        "type": "none"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "balloon": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "ground_picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "ground_color": {\r
-                "symbol": {\r
-                    "type": "template",\r
-                    "name": "symbol"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "original_picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "revision",\r
-                    "link": {\r
-                        "type": "action",\r
-                        "name": "history"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "template",\r
-                    "name": "publish"\r
-                }\r
-            },\r
-            "picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "revision"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "resource_picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "speech_balloon_template": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                },\r
-                "summary": {\r
-                    "type": "none"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "writing_format": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption"\r
-                },\r
-                "summary": {\r
-                    "type": "none"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "license_group": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "caption",\r
-                    "link": {\r
-                        "type": "url_column",\r
-                        "name": "url"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "none"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "license": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "method",\r
-                    "name": "caption_with_group",\r
-                    "link": {\r
-                        "type": "url_column",\r
-                        "name": "url"\r
-                    }\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            },\r
-            "author": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "name"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "account"\r
-                }\r
-            },\r
-            "artist": {\r
-                "symbol": {\r
-                    "type": "image",\r
-                    "name": "/assets/item.png"\r
-                },\r
-                "caption": {\r
-                    "type": "column",\r
-                    "name": "name"\r
-                },\r
-                "summary": {\r
-                    "type": "template",\r
-                    "name": "summary"\r
-                },\r
-                "edit": {\r
-                    "type": "account"\r
-                }\r
-            },\r
-            "system_picture": {\r
-                "symbol": {\r
-                    "type": "picture",\r
-                    "name": "symbol_option"\r
-                },\r
-                "caption": {\r
-                    "type": "none"\r
-                },\r
-                "summary": {\r
-                    "type": "none"\r
-                },\r
-                "edit": {\r
-                    "type": "none"\r
-                }\r
-            }\r
+        "columns": [\r
+          "id",\r
+          "speech_balloon_id",\r
+          "writing_format_id",\r
+          "content",\r
+          "font_size",\r
+          "text_align",\r
+          "fore_color",\r
+          "x",\r
+          "y",\r
+          "width",\r
+          "height",\r
+          "quotes",\r
+          "settings",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "speech_balloon",\r
+            "writing_format"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "balloon": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
         },\r
-        "elements": [\r
-            {\r
-                "name": "panel_picture",\r
-                "path_name": "panel_pictures",\r
-                "parts": []\r
-            },\r
-            {\r
-                "name": "speech_balloon",\r
-                "path_name": "circle_speech_balloon/speech_balloons",\r
-                "parts": [\r
-                    "balloon",\r
-                    "speech"\r
-                ]\r
-            },\r
-            {\r
-                "name": "ground_picture",\r
-                "path_name": "ground_pictures",\r
-                "parts": []\r
-            },\r
-            {\r
-                "name": "ground_color",\r
-                "path_name": "ground_colors",\r
-                "parts": []\r
-            }\r
+        "columns": [\r
+          "id",\r
+          "speech_balloon_id",\r
+          "system_picture_id",\r
+          "x",\r
+          "y",\r
+          "width",\r
+          "height",\r
+          "r",\r
+          "settings",\r
+          "created_at",\r
+          "updated_at"\r
         ],\r
-        "forms": {\r
-            "Panel": "panel",\r
-            "panel": {\r
-                "attributes": {\r
-                    "caption": {\r
-                        "column": "caption",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "width": {\r
-                        "column": "width",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "height": {\r
-                        "column": "height",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "border": {\r
-                        "column": "border",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "publish": {\r
-                        "column": "publish",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "magic_number",\r
-                            "key": "comic_visible_items",\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "id": {\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "author_id": {\r
-                        "column": "author_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "caption",\r
-                    "width",\r
-                    "height",\r
-                    "border",\r
-                    "publish",\r
-                    "id",\r
-                    "author_id"\r
-                ]\r
-            },\r
-            "PanelPicture": "panel_picture",\r
-            "panel_picture": {\r
-                "attributes": {\r
-                    "caption": {\r
-                        "column": "caption",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "x": {\r
-                        "column": "x",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "y": {\r
-                        "column": "y",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "width": {\r
-                        "column": "width",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        },\r
-                        "helpers": {\r
-                            "size": {\r
-                                "path": "panels/size_helper",\r
-                                "options": {\r
-                                    "class": "panel_picture_width_tool"\r
-                                }\r
-                            }\r
-                        }\r
-                    },\r
-                    "height": {\r
-                        "column": "height",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        },\r
-                        "helpers": {\r
-                            "size": {\r
-                                "path": "panels/size_helper",\r
-                                "options": {\r
-                                    "class": "panel_picture_height_tool"\r
-                                }\r
-                            }\r
-                        }\r
-                    },\r
-                    "link": {\r
-                        "column": "link",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "id": {\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "panel_id": {\r
-                        "column": "panel_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "picture_id": {\r
-                        "column": "picture_id",\r
-                        "type": "hidden",\r
-                        "label": {},\r
-                        "helpers": {\r
-                            "popup": {\r
-                                "path": "panels/popup_helper",\r
-                                "source": "pictures",\r
-                                "options": {}\r
-                            }\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "z": {\r
-                        "column": "z",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "t": {\r
-                        "column": "t",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "caption",\r
-                    "x",\r
-                    "y",\r
-                    "width",\r
-                    "height",\r
-                    "link",\r
-                    "id",\r
-                    "panel_id",\r
-                    "picture_id",\r
-                    "z",\r
-                    "t"\r
-                ]\r
-            },\r
-            "speech_balloon": {\r
-                "attributes": {\r
-                    "speech_balloon.id": {\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.panel_id": {\r
-                        "column": "panel_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.speech_balloon_template_id": {\r
-                        "column": "speech_balloon_template_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.caption": {\r
-                        "column": "caption",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "speech_balloon.z": {\r
-                        "column": "z",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.t": {\r
-                        "column": "t",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.classname": {\r
-                        "column": "classname",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech_balloon.settings": {\r
-                        "column": "settings",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "balloon.id": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "balloon.speech_balloon_id": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "speech_balloon_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "balloon.system_picture_id": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "system_picture_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "balloon.r": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "r",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        },\r
-                        "helpers": {\r
-                            "tail_angle": {\r
-                                "path": "panels/tail_angle_helper",\r
-                                "options": {}\r
-                            }\r
-                        }\r
-                    },\r
-                    "balloon.x": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "x",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "balloon.y": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "y",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "balloon.width": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "width",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "balloon.height": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "height",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "balloon.settings": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "settings",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.id": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.speech_balloon_id": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "speech_balloon_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.x": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "x",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.y": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "y",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.width": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "width",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.height": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "height",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "speech.writing_format_id": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "writing_format_id",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "model",\r
-                            "model": "writing_format",\r
-                            "method": "enable_list",\r
-                            "caption": "caption"\r
-                        }\r
-                    },\r
-                    "speech.font_size": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "font_size",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "magic_number",\r
-                            "key": "speech_font_size_items",\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "speech.text_align": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "text_align",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "magic_number",\r
-                            "key": "speech_text_align_items"\r
-                        }\r
-                    },\r
-                    "speech.quotes": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "quotes",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "speech.content": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "content",\r
-                        "type": "text_area",\r
-                        "label": {\r
-                            "row_break": true\r
-                        },\r
-                        "options": {\r
-                            "size": "45x5"\r
-                        }\r
-                    },\r
-                    "speech.fore_color": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "fore_color",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "row_break": true\r
-                        },\r
-                        "options": {},\r
-                        "helpers": {\r
-                            "color": {\r
-                                "path": "panels/color_helper",\r
-                                "options": {},\r
-                                "wrapper": "speech-fore_color-wrap"\r
-                            }\r
-                        }\r
-                    },\r
-                    "speech.settings": {\r
-                        "model": "speech",\r
-                        "part": "speech",\r
-                        "column": "settings",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                }\r
-            },\r
-            "CircleSpeechBalloon": "circle_speech_balloon",\r
-            "circle_speech_balloon": {\r
-                "base": "speech_balloon",\r
-                "attributes": {},\r
-                "fields": [\r
-                    "speech_balloon.caption",\r
-                    "balloon.r",\r
-                    "balloon.x",\r
-                    "balloon.y",\r
-                    "balloon.width",\r
-                    "balloon.height",\r
-                    "balloon.id",\r
-                    "balloon.speech_balloon_id",\r
-                    "balloon.system_picture_id",\r
-                    "balloon.settings",\r
-                    "speech.writing_format_id",\r
-                    "speech.font_size",\r
-                    "speech.text_align",\r
-                    "speech.quotes",\r
-                    "speech.content",\r
-                    "speech.fore_color",\r
-                    "speech.id",\r
-                    "speech.speech_balloon_id",\r
-                    "speech.x",\r
-                    "speech.y",\r
-                    "speech.width",\r
-                    "speech.height",\r
-                    "speech.settings",\r
-                    "speech_balloon.id",\r
-                    "speech_balloon.panel_id",\r
-                    "speech_balloon.speech_balloon_template_id",\r
-                    "speech_balloon.classname",\r
-                    "speech_balloon.z",\r
-                    "speech_balloon.t",\r
-                    "speech_balloon.settings"\r
-                ]\r
-            },\r
-            "PlainSpeechBalloon": "plain_speech_balloon",\r
-            "plain_speech_balloon": {\r
-                "base": "speech_balloon",\r
-                "attributes": {\r
-                    "balloon.r": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "r",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "speech_balloon.caption",\r
-                    "balloon.r",\r
-                    "balloon.x",\r
-                    "balloon.y",\r
-                    "balloon.width",\r
-                    "balloon.height",\r
-                    "balloon.id",\r
-                    "balloon.speech_balloon_id",\r
-                    "balloon.system_picture_id",\r
-                    "balloon.settings",\r
-                    "speech.writing_format_id",\r
-                    "speech.font_size",\r
-                    "speech.text_align",\r
-                    "speech.quotes",\r
-                    "speech.content",\r
-                    "speech.fore_color",\r
-                    "speech.id",\r
-                    "speech.speech_balloon_id",\r
-                    "speech.x",\r
-                    "speech.y",\r
-                    "speech.width",\r
-                    "speech.height",\r
-                    "speech.settings",\r
-                    "speech_balloon.id",\r
-                    "speech_balloon.panel_id",\r
-                    "speech_balloon.speech_balloon_template_id",\r
-                    "speech_balloon.classname",\r
-                    "speech_balloon.z",\r
-                    "speech_balloon.t",\r
-                    "speech_balloon.settings"\r
-                ]\r
-            },\r
-            "SquareSpeechBalloon": "square_speech_balloon",\r
-            "square_speech_balloon": {\r
-                "base": "speech_balloon",\r
-                "attributes": {\r
-                    "balloon.r": {\r
-                        "model": "balloon",\r
-                        "part": "balloon",\r
-                        "column": "r",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "speech_balloon.caption",\r
-                    "balloon.r",\r
-                    "balloon.x",\r
-                    "balloon.y",\r
-                    "balloon.width",\r
-                    "balloon.height",\r
-                    "balloon.id",\r
-                    "balloon.speech_balloon_id",\r
-                    "balloon.system_picture_id",\r
-                    "balloon.settings",\r
-                    "speech.writing_format_id",\r
-                    "speech.font_size",\r
-                    "speech.text_align",\r
-                    "speech.quotes",\r
-                    "speech.content",\r
-                    "speech.fore_color",\r
-                    "speech.id",\r
-                    "speech.speech_balloon_id",\r
-                    "speech.x",\r
-                    "speech.y",\r
-                    "speech.width",\r
-                    "speech.height",\r
-                    "speech.settings",\r
-                    "speech_balloon.id",\r
-                    "speech_balloon.panel_id",\r
-                    "speech_balloon.speech_balloon_template_id",\r
-                    "speech_balloon.classname",\r
-                    "speech_balloon.z",\r
-                    "speech_balloon.t",\r
-                    "speech_balloon.settings"\r
-                ]\r
-            },\r
-            "GroundPicture": "ground_picture",\r
-            "ground_picture": {\r
-                "attributes": {\r
-                    "id": {\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "panel_id": {\r
-                        "column": "panel_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "picture_id": {\r
-                        "column": "picture_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "caption": {\r
-                        "column": "caption",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "repeat": {\r
-                        "column": "repeat",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "magic_number",\r
-                            "key": "ground_picture_repeat_items",\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "x": {\r
-                        "column": "x",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "y": {\r
-                        "column": "y",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "z": {\r
-                        "column": "z",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "t": {\r
-                        "column": "t",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "caption",\r
-                    "repeat",\r
-                    "x",\r
-                    "y",\r
-                    "z",\r
-                    "t",\r
-                    "id",\r
-                    "panel_id",\r
-                    "picture_id"\r
-                ]\r
-            },\r
-            "GroundColor": "ground_color",\r
-            "ground_color": {\r
-                "attributes": {\r
-                    "id": {\r
-                        "column": "id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "panel_id": {\r
-                        "column": "panel_id",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "caption": {\r
-                        "column": "caption",\r
-                        "type": "text",\r
-                        "label": {},\r
-                        "options": {\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "code": {\r
-                        "column": "code",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "row_break": true\r
-                        },\r
-                        "options": {\r
-                            "row_break": true\r
-                        },\r
-                        "helpers": {\r
-                            "color": {\r
-                                "path": "panels/color_helper",\r
-                                "options": {},\r
-                                "wrapper": "ground_color-code-wrap"\r
-                            }\r
-                        }\r
-                    },\r
-                    "orientation": {\r
-                        "column": "orientation",\r
-                        "type": "select",\r
-                        "label": {},\r
-                        "options": {\r
-                            "source": "magic_number",\r
-                            "key": "ground_color_orientation_items",\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "xy": {\r
-                        "column": "xy",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5\r
-                        }\r
-                    },\r
-                    "wh": {\r
-                        "column": "wh",\r
-                        "type": "number",\r
-                        "label": {},\r
-                        "options": {\r
-                            "size": 5,\r
-                            "row_break": true\r
-                        }\r
-                    },\r
-                    "z": {\r
-                        "column": "z",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    },\r
-                    "t": {\r
-                        "column": "t",\r
-                        "type": "hidden",\r
-                        "label": {\r
-                            "type": "hidden"\r
-                        },\r
-                        "options": {}\r
-                    }\r
-                },\r
-                "fields": [\r
-                    "id",\r
-                    "panel_id",\r
-                    "caption",\r
-                    "code",\r
-                    "orientation",\r
-                    "xy",\r
-                    "wh",\r
-                    "z",\r
-                    "t"\r
-                ]\r
-            }\r
+        "associations": {\r
+          "belongs_to": [\r
+            "speech_balloon",\r
+            "system_picture"\r
+          ],\r
+          "has_many": []\r
         }\r
-    },\r
-    "locales": {\r
-        "ja": {}\r
+      },\r
+      "ground_picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "panel_id",\r
+          "picture_id",\r
+          "caption",\r
+          "repeat",\r
+          "x",\r
+          "y",\r
+          "z",\r
+          "t",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "panel"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "ground_color": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "panel_id",\r
+          "caption",\r
+          "code",\r
+          "orientation",\r
+          "xy",\r
+          "wh",\r
+          "z",\r
+          "t",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "panel"\r
+          ],\r
+          "has_many": []\r
+        }\r
+      },\r
+      "original_picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "ext",\r
+          "width",\r
+          "height",\r
+          "filesize",\r
+          "artist_id",\r
+          "md5",\r
+          "uploaded_at",\r
+          "published_at",\r
+          "stopped_at",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "artist"\r
+          ],\r
+          "has_many": [\r
+            "pictures"\r
+          ],\r
+          "has_one": [\r
+            "resource_picture"\r
+          ]\r
+        }\r
+      },\r
+      "picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "original_picture_id",\r
+          "revision",\r
+          "ext",\r
+          "width",\r
+          "height",\r
+          "filesize",\r
+          "artist_id",\r
+          "license_id",\r
+          "md5",\r
+          "artist_name",\r
+          "credit",\r
+          "settings",\r
+          "classname",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "license",\r
+            "artist"\r
+          ],\r
+          "has_many": [],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "resource_picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "original_picture_id",\r
+          "revision",\r
+          "ext",\r
+          "width",\r
+          "height",\r
+          "filesize",\r
+          "artist_id",\r
+          "license_id",\r
+          "md5",\r
+          "artist_name",\r
+          "credit",\r
+          "settings",\r
+          "picture_id",\r
+          "classname",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "license",\r
+            "artist"\r
+          ],\r
+          "has_many": [],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "speech_balloon_template": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "name",\r
+          "classname",\r
+          "caption",\r
+          "t",\r
+          "system_picture_id",\r
+          "settings",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "system_picture"\r
+          ],\r
+          "has_many": [\r
+            "speech_balloons",\r
+            "panels"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "writing_format": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "name",\r
+          "classname",\r
+          "caption",\r
+          "system_picture_id",\r
+          "settings",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "system_picture"\r
+          ],\r
+          "has_many": [\r
+            "speeches"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "license_group": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "name",\r
+          "classname",\r
+          "caption",\r
+          "url",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [],\r
+          "has_many": [\r
+            "licenses"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "license": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "license_group_id",\r
+          "name",\r
+          "caption",\r
+          "system_picture_id",\r
+          "url",\r
+          "settings",\r
+          "credit_pictures",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [\r
+            "license_group",\r
+            "system_picture"\r
+          ],\r
+          "has_many": [\r
+            "resource_pictures"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "author": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "name",\r
+          "user_id",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [],\r
+          "has_many": [\r
+            "scrolls",\r
+            "comics",\r
+            "stories",\r
+            "sheets",\r
+            "panels"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "artist": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "name",\r
+          "author_id",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [],\r
+          "has_many": [\r
+            "resource_pictures"\r
+          ],\r
+          "has_one": []\r
+        }\r
+      },\r
+      "system_picture": {\r
+        "lists": {\r
+          "scroll_panels.by_scroll": {\r
+            "model_name": "scroll_panel",\r
+            "list_name": "by_scroll"\r
+          },\r
+          "panels.by_scroll": {\r
+            "model_name": "panel",\r
+            "list_name": "by_scroll"\r
+          }\r
+        },\r
+        "columns": [\r
+          "id",\r
+          "ext",\r
+          "width",\r
+          "height",\r
+          "filesize",\r
+          "md5",\r
+          "created_at",\r
+          "updated_at"\r
+        ],\r
+        "associations": {\r
+          "belongs_to": [],\r
+          "has_many": [],\r
+          "has_one": []\r
+        }\r
+      }\r
+    },\r
+    "filers": {\r
+      "scroll": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "title",\r
+          "link": {\r
+            "type": "action",\r
+            "name": "play"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "default"\r
+        }\r
+      },\r
+      "scroll_panel": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "comic": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "title"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "default"\r
+        }\r
+      },\r
+      "story": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "title_with_t",\r
+          "link": {\r
+            "type": "action",\r
+            "name": "play"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "default"\r
+        }\r
+      },\r
+      "story_sheet": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "sheet": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption",\r
+          "link": {\r
+            "type": "action",\r
+            "name": "play"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "default"\r
+        }\r
+      },\r
+      "sheet_panel": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "panel": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "plain_scenario",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "default"\r
+        }\r
+      },\r
+      "panel_picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "speech_balloon": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "plain_scenario",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "speech": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "content",\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "balloon": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "ground_picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "ground_color": {\r
+        "symbol": {\r
+          "type": "template",\r
+          "name": "symbol"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "original_picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "revision",\r
+          "link": {\r
+            "type": "action",\r
+            "name": "history"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "template",\r
+          "name": "publish"\r
+        }\r
+      },\r
+      "picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "revision"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "resource_picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "speech_balloon_template": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        },\r
+        "summary": {\r
+          "type": "none"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "writing_format": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        },\r
+        "summary": {\r
+          "type": "none"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "license_group": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption",\r
+          "link": {\r
+            "type": "url_column",\r
+            "name": "url"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "none"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "license": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "caption_with_group",\r
+          "link": {\r
+            "type": "url_column",\r
+            "name": "url"\r
+          }\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      },\r
+      "author": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "name"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "account"\r
+        }\r
+      },\r
+      "artist": {\r
+        "symbol": {\r
+          "type": "image",\r
+          "name": "/assets/item.png"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "name"\r
+        },\r
+        "summary": {\r
+          "type": "template",\r
+          "name": "summary"\r
+        },\r
+        "edit": {\r
+          "type": "account"\r
+        }\r
+      },\r
+      "system_picture": {\r
+        "symbol": {\r
+          "type": "picture",\r
+          "name": "symbol_option"\r
+        },\r
+        "caption": {\r
+          "type": "none"\r
+        },\r
+        "summary": {\r
+          "type": "none"\r
+        },\r
+        "edit": {\r
+          "type": "none"\r
+        }\r
+      }\r
+    },\r
+    "elements": [\r
+      {\r
+        "name": "panel_picture",\r
+        "path_name": "panel_pictures",\r
+        "parts": []\r
+      },\r
+      {\r
+        "name": "speech_balloon",\r
+        "path_name": "circle_speech_balloon/speech_balloons",\r
+        "parts": [\r
+          "balloon",\r
+          "speech"\r
+        ]\r
+      },\r
+      {\r
+        "name": "ground_picture",\r
+        "path_name": "ground_pictures",\r
+        "parts": []\r
+      },\r
+      {\r
+        "name": "ground_color",\r
+        "path_name": "ground_colors",\r
+        "parts": []\r
+      }\r
+    ],\r
+    "forms": {\r
+      "Panel": "panel",\r
+      "panel": {\r
+        "attributes": {\r
+          "caption": {\r
+            "column": "caption",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "width": {\r
+            "column": "width",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "height": {\r
+            "column": "height",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "border": {\r
+            "column": "border",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "publish": {\r
+            "column": "publish",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "magic_number",\r
+              "key": "comic_visible_items",\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "author_id": {\r
+            "column": "author_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "caption",\r
+          "width",\r
+          "height",\r
+          "border",\r
+          "publish",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "PanelPicture": "panel_picture",\r
+      "panel_picture": {\r
+        "attributes": {\r
+          "caption": {\r
+            "column": "caption",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "x": {\r
+            "column": "x",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "y": {\r
+            "column": "y",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "width": {\r
+            "column": "width",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            },\r
+            "helpers": {\r
+              "size": {\r
+                "path": "panels/size_helper",\r
+                "options": {\r
+                  "class": "panel_picture_width_tool"\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "height": {\r
+            "column": "height",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            },\r
+            "helpers": {\r
+              "size": {\r
+                "path": "panels/size_helper",\r
+                "options": {\r
+                  "class": "panel_picture_height_tool"\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "link": {\r
+            "column": "link",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "panel_id": {\r
+            "column": "panel_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "picture_id": {\r
+            "column": "picture_id",\r
+            "type": "hidden",\r
+            "label": {},\r
+            "helpers": {\r
+              "popup": {\r
+                "path": "panels/popup_helper",\r
+                "source": "pictures",\r
+                "options": {}\r
+              }\r
+            },\r
+            "options": {}\r
+          },\r
+          "z": {\r
+            "column": "z",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "t": {\r
+            "column": "t",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "caption",\r
+          "x",\r
+          "y",\r
+          "width",\r
+          "height",\r
+          "link",\r
+          "id",\r
+          "panel_id",\r
+          "picture_id",\r
+          "z",\r
+          "t"\r
+        ]\r
+      },\r
+      "speech_balloon": {\r
+        "attributes": {\r
+          "speech_balloon.id": {\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.panel_id": {\r
+            "column": "panel_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.speech_balloon_template_id": {\r
+            "column": "speech_balloon_template_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.caption": {\r
+            "column": "caption",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "speech_balloon.z": {\r
+            "column": "z",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.t": {\r
+            "column": "t",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.classname": {\r
+            "column": "classname",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech_balloon.settings": {\r
+            "column": "settings",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "balloon.id": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "balloon.speech_balloon_id": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "speech_balloon_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "balloon.system_picture_id": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "system_picture_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "balloon.r": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "r",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            },\r
+            "helpers": {\r
+              "tail_angle": {\r
+                "path": "panels/tail_angle_helper",\r
+                "options": {}\r
+              }\r
+            }\r
+          },\r
+          "balloon.x": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "x",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "balloon.y": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "y",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "balloon.width": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "width",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "balloon.height": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "height",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "balloon.settings": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "settings",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.id": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.speech_balloon_id": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "speech_balloon_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.x": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "x",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.y": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "y",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.width": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "width",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.height": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "height",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "speech.writing_format_id": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "writing_format_id",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "model",\r
+              "model": "writing_format",\r
+              "method": "enable_list",\r
+              "caption": "caption"\r
+            }\r
+          },\r
+          "speech.font_size": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "font_size",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "magic_number",\r
+              "key": "speech_font_size_items",\r
+              "row_break": true\r
+            }\r
+          },\r
+          "speech.text_align": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "text_align",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "magic_number",\r
+              "key": "speech_text_align_items"\r
+            }\r
+          },\r
+          "speech.quotes": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "quotes",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "speech.content": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "content",\r
+            "type": "text_area",\r
+            "label": {\r
+              "row_break": true\r
+            },\r
+            "options": {\r
+              "size": "45x5"\r
+            }\r
+          },\r
+          "speech.fore_color": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "fore_color",\r
+            "type": "hidden",\r
+            "label": {\r
+              "row_break": true\r
+            },\r
+            "options": {},\r
+            "helpers": {\r
+              "color": {\r
+                "path": "panels/color_helper",\r
+                "options": {},\r
+                "wrapper": "speech-fore_color-wrap"\r
+              }\r
+            }\r
+          },\r
+          "speech.settings": {\r
+            "model": "speech",\r
+            "part": "speech",\r
+            "column": "settings",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        }\r
+      },\r
+      "CircleSpeechBalloon": "circle_speech_balloon",\r
+      "circle_speech_balloon": {\r
+        "base": "speech_balloon",\r
+        "attributes": {},\r
+        "fields": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      },\r
+      "PlainSpeechBalloon": "plain_speech_balloon",\r
+      "plain_speech_balloon": {\r
+        "base": "speech_balloon",\r
+        "attributes": {\r
+          "balloon.r": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "r",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      },\r
+      "SquareSpeechBalloon": "square_speech_balloon",\r
+      "square_speech_balloon": {\r
+        "base": "speech_balloon",\r
+        "attributes": {\r
+          "balloon.r": {\r
+            "model": "balloon",\r
+            "part": "balloon",\r
+            "column": "r",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      },\r
+      "GroundPicture": "ground_picture",\r
+      "ground_picture": {\r
+        "attributes": {\r
+          "id": {\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "panel_id": {\r
+            "column": "panel_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "picture_id": {\r
+            "column": "picture_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "caption": {\r
+            "column": "caption",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "repeat": {\r
+            "column": "repeat",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "magic_number",\r
+              "key": "ground_picture_repeat_items",\r
+              "row_break": true\r
+            }\r
+          },\r
+          "x": {\r
+            "column": "x",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "y": {\r
+            "column": "y",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "z": {\r
+            "column": "z",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "t": {\r
+            "column": "t",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "caption",\r
+          "repeat",\r
+          "x",\r
+          "y",\r
+          "z",\r
+          "t",\r
+          "id",\r
+          "panel_id",\r
+          "picture_id"\r
+        ]\r
+      },\r
+      "GroundColor": "ground_color",\r
+      "ground_color": {\r
+        "attributes": {\r
+          "id": {\r
+            "column": "id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "panel_id": {\r
+            "column": "panel_id",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "caption": {\r
+            "column": "caption",\r
+            "type": "text",\r
+            "label": {},\r
+            "options": {\r
+              "row_break": true\r
+            }\r
+          },\r
+          "code": {\r
+            "column": "code",\r
+            "type": "hidden",\r
+            "label": {\r
+              "row_break": true\r
+            },\r
+            "options": {\r
+              "row_break": true\r
+            },\r
+            "helpers": {\r
+              "color": {\r
+                "path": "panels/color_helper",\r
+                "options": {},\r
+                "wrapper": "ground_color-code-wrap"\r
+              }\r
+            }\r
+          },\r
+          "orientation": {\r
+            "column": "orientation",\r
+            "type": "select",\r
+            "label": {},\r
+            "options": {\r
+              "source": "magic_number",\r
+              "key": "ground_color_orientation_items",\r
+              "row_break": true\r
+            }\r
+          },\r
+          "xy": {\r
+            "column": "xy",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5\r
+            }\r
+          },\r
+          "wh": {\r
+            "column": "wh",\r
+            "type": "number",\r
+            "label": {},\r
+            "options": {\r
+              "size": 5,\r
+              "row_break": true\r
+            }\r
+          },\r
+          "z": {\r
+            "column": "z",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          },\r
+          "t": {\r
+            "column": "t",\r
+            "type": "hidden",\r
+            "label": {\r
+              "type": "hidden"\r
+            },\r
+            "options": {}\r
+          }\r
+        },\r
+        "fields": [\r
+          "id",\r
+          "panel_id",\r
+          "caption",\r
+          "code",\r
+          "orientation",\r
+          "xy",\r
+          "wh",\r
+          "z",\r
+          "t"\r
+        ]\r
+      }\r
+    }\r
+  },\r
+  "locales": {\r
+    "ja": {}\r
+  },\r
+  "models": {\r
+    "Scroll": "scroll",\r
+    "scroll": {\r
+      "class_name": "Scroll",\r
+      "table_name": "scrolls",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "author": {\r
+            "id_column": "author_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "scroll_panels": {\r
+            "foreign_key": "scroll_id",\r
+            "model": "scroll_panel"\r
+          },\r
+          "panels": {\r
+            "through": "scroll_panel",\r
+            "foreign_key": "scroll_id",\r
+            "model": "panel"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "title": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "description": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "visible": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "scroll_visible_items"\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "list": {\r
+          "name": "public"\r
+        },\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "title"\r
+        }\r
+      }\r
+    },\r
+    "ScrollPanel": "scroll_panel",\r
+    "scroll_panel": {\r
+      "class_name": "ScrollPanel",\r
+      "table_name": "scroll_panels",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          },\r
+          "scroll": {\r
+            "id_column": "scroll_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "scroll_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Comic": "comic",\r
+    "comic": {\r
+      "class_name": "Comic",\r
+      "table_name": "comics",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "author": {\r
+            "id_column": "author_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "stories": {\r
+            "foreign_key": "comic_id",\r
+            "model": "story"\r
+          }\r
+        },\r
+        "has_many_through": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "title": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "description": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "visible": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "comic_visible_items"\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "title"\r
+        }\r
+      }\r
+    },\r
+    "Story": "story",\r
+    "story": {\r
+      "class_name": "Story",\r
+      "table_name": "stories",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "comic": {\r
+            "id_column": "comic_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "story_sheets": {\r
+            "foreign_key": "story_id",\r
+            "list_method": "list_by_story"\r
+          },\r
+          "sheets": {\r
+            "through": "story_sheets",\r
+            "foreign_key": "story_id",\r
+            "list_method": "list_by_story"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "comic_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "title": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "description": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "visible": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "story_visible_items"\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "title_with_t"\r
+        }\r
+      }\r
+    },\r
+    "StorySheet": "story_sheet",\r
+    "story_sheet": {\r
+      "class_name": "StorySheet",\r
+      "table_name": "story_sheets",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "story": {\r
+            "id_column": "story_id"\r
+          },\r
+          "sheet": {\r
+            "id_column": "sheet_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "story_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "sheet_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Sheet": "sheet",\r
+    "sheet": {\r
+      "class_name": "Sheet",\r
+      "table_name": "sheets",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "author": {\r
+            "id_column": "author_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "story_sheets": {\r
+            "foreign_key": "story_id",\r
+            "list_method": "list_by_sheet"\r
+          },\r
+          "stories": {\r
+            "through": "story_sheets",\r
+            "foreign_key": "sheet_id",\r
+            "list_method": "list_by_sheet"\r
+          },\r
+          "sheet_panels": {\r
+            "foreign_key": "sheet_id",\r
+            "list_method": "list_by_sheet"\r
+          },\r
+          "panels": {\r
+            "through": "sheet_panels",\r
+            "foreign_key": "sheet_id",\r
+            "list_method": "list_by_sheet"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "visible": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "sheet_visible_items"\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        }\r
+      }\r
+    },\r
+    "SheetPanel": "sheet_panel",\r
+    "sheet_panel": {\r
+      "class_name": "SheetPanel",\r
+      "table_name": "sheet_panels",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "sheet": {\r
+            "id_column": "sheet_id"\r
+          },\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "sheet_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "x": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "y": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "z": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Panel": "panel",\r
+    "panel": {\r
+      "class_name": "Panel",\r
+      "table_name": "panels",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "author": {\r
+            "id_column": "author_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "scroll_panels": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "scrolls": {\r
+            "through": "scroll_panels",\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "sheet_panels": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "sheets": {\r
+            "through": "sheet_panels",\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "panel_pictures": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "speech_balloons": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "ground_pictures": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          },\r
+          "ground_colors": {\r
+            "foreign_key": "panel_id",\r
+            "list_method": "list_by_panel"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "border": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "publish": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "panel_visible_items"\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "plain_scenario"\r
+        }\r
+      }\r
+    },\r
+    "PanelPicture": "panel_picture",\r
+    "panel_picture": {\r
+      "class_name": "PanelPicture",\r
+      "table_name": "panel_pictures",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "x": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "y": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "link": {\r
+          "type": "text",\r
+          "rules": {\r
+            "url": true\r
+          }\r
+        },\r
+        "z": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "SpeechBalloon": "speech_balloon",\r
+    "speech_balloon": {\r
+      "class_name": "SpeechBalloon",\r
+      "table_name": "speech_balloons",\r
+      "extend": "classname",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          }\r
+        },\r
+        "has_many": {},\r
+        "has_one": {\r
+          "balloon": {\r
+            "foreign_key": "speech_balloon_id",\r
+            "list_method": "list_by_speech_balloon"\r
+          },\r
+          "speech": {\r
+            "foreign_key": "speech_balloon_id",\r
+            "list_method": "list_by_speech_balloon"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "speech_balloon_template_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "z": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "method",\r
+          "name": "plain_scenario"\r
+        }\r
+      }\r
+    },\r
+    "Balloon": "balloon",\r
+    "balloon": {\r
+      "class_name": "Balloon",\r
+      "table_name": "balloons",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "speech_balloon": {\r
+            "id_column": "speech_balloon_id"\r
+          },\r
+          "system_picture": {\r
+            "id_column": "system_picture_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "speech_balloon_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "x": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "y": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "r": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Speech": "speech",\r
+    "speech": {\r
+      "class_name": "Speech",\r
+      "table_name": "speeches",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "speech_balloon": {\r
+            "id_column": "speech_balloon_id"\r
+          },\r
+          "writing_format": {\r
+            "id_column": "writing_format_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "speech_balloon_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "writing_format_id": {\r
+          "type": "number",\r
+          "source": {\r
+            "type": "model",\r
+            "model": "writing_format",\r
+            "method": "enable_list",\r
+            "caption": "caption"\r
+          },\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "content": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "font_size": {\r
+          "type": "float",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "speech_font_size_items"\r
+          }\r
+        },\r
+        "text_align": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "range": [\r
+              0,\r
+              3\r
+            ]\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "speech_text_align_items"\r
+          }\r
+        },\r
+        "fore_color": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "range": [\r
+              0,\r
+              16777215\r
+            ]\r
+          }\r
+        },\r
+        "x": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "y": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "quotes": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "GroundPicture": "ground_picture",\r
+    "ground_picture": {\r
+      "class_name": "GroundPicture",\r
+      "table_name": "ground_pictures",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "repeat": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "range": [\r
+              0,\r
+              3\r
+            ]\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "ground_picture_repeat_items"\r
+          }\r
+        },\r
+        "x": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "y": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "z": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "GroundColor": "ground_color",\r
+    "ground_color": {\r
+      "class_name": "GroundColor",\r
+      "table_name": "ground_colors",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "panel": {\r
+            "id_column": "panel_id"\r
+          }\r
+        },\r
+        "has_many": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "panel_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "code": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "range": [\r
+              0,\r
+              16777215\r
+            ]\r
+          }\r
+        },\r
+        "orientation": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "range": [\r
+              0,\r
+              1\r
+            ]\r
+          },\r
+          "source": {\r
+            "type": "magic_number",\r
+            "key": "ground_color_orientation_items"\r
+          }\r
+        },\r
+        "xy": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "wh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "z": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 1\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "OriginalPicture": "original_picture",\r
+    "original_picture": {\r
+      "class_name": "OriginalPicture",\r
+      "table_name": "original_pictures",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "artist": {\r
+            "id_column": "artist_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "pictures": {\r
+            "foreign_key": "original_picture_id",\r
+            "list_method": "list_by_original_picture"\r
+          }\r
+        },\r
+        "has_one": {\r
+          "resource_picture": {\r
+            "foreign_key": "original_picture_id",\r
+            "list_method": "list_by_original_picture"\r
+          }\r
+        }\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "ext": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "filesize": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "md5": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "uploaded_at": {\r
+          "type": "datetime"\r
+        },\r
+        "published_at": {\r
+          "type": "datetime"\r
+        },\r
+        "stopped_at": {\r
+          "type": "datetime"\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Picture": "picture",\r
+    "picture": {\r
+      "class_name": "Picture",\r
+      "table_name": "pictures",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "license": {\r
+            "id_column": "license_id"\r
+          },\r
+          "artist": {\r
+            "id_column": "artist_id"\r
+          }\r
+        },\r
+        "has_many": {},\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "original_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "revision": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "ext": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "filesize": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "md5": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "credit": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "ResourcePicture": "resource_picture",\r
+    "resource_picture": {\r
+      "class_name": "ResourcePicture",\r
+      "table_name": "resource_pictures",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "license": {\r
+            "id_column": "license_id"\r
+          },\r
+          "artist": {\r
+            "id_column": "artist_id"\r
+          }\r
+        },\r
+        "has_many": {},\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "original_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "revision": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "ext": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "filesize": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "md5": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "credit": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "SpeechBalloonTemplate": "speech_balloon_template",\r
+    "speech_balloon_template": {\r
+      "class_name": "SpeechBalloonTemplate",\r
+      "table_name": "speech_balloon_templates",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "system_picture": {\r
+            "id_column": "system_picture_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "speech_balloons": {\r
+            "foreign_key": "speech_balloon_template_id",\r
+            "list_method": "list_by_speech_balloon_template"\r
+          },\r
+          "panels": {\r
+            "through": "speech_balloons",\r
+            "foreign_key": "speech_balloon_template_id",\r
+            "list_method": "list_by_speech_balloon_template"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "t": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true,\r
+            "min": 0\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "enable_list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        }\r
+      }\r
+    },\r
+    "WritingFormat": "writing_format",\r
+    "writing_format": {\r
+      "class_name": "WritingFormat",\r
+      "table_name": "writing_formats",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "system_picture": {\r
+            "id_column": "system_picture_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "speeches": {\r
+            "foreign_key": "writing_format_id",\r
+            "list_method": "list_by_writing_format"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "enable_list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        }\r
+      }\r
+    },\r
+    "LicenseGroup": "license_group",\r
+    "license_group": {\r
+      "class_name": "LicenseGroup",\r
+      "table_name": "license_groups",\r
+      "associations": {\r
+        "belongs_to": {},\r
+        "has_many": {\r
+          "licenses": {\r
+            "foreign_key": "license_group_id",\r
+            "list_method": "list_by_license_group"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "classname": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "url": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "caption"\r
+        }\r
+      }\r
+    },\r
+    "License": "license",\r
+    "license": {\r
+      "class_name": "License",\r
+      "table_name": "licenses",\r
+      "associations": {\r
+        "belongs_to": {\r
+          "license_group": {\r
+            "id_column": "license_group_id"\r
+          },\r
+          "system_picture": {\r
+            "id_column": "system_picture_id"\r
+          }\r
+        },\r
+        "has_many": {\r
+          "resource_pictures": {\r
+            "foreign_key": "license_id",\r
+            "list_method": "list_by_license"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "license_group_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "url": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "settings": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "credit_pictures": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
+    },\r
+    "Author": "author",\r
+    "author": {\r
+      "class_name": "Author",\r
+      "table_name": "authors",\r
+      "associations": {\r
+        "belongs_to": {},\r
+        "has_many": {\r
+          "scrolls": {\r
+            "foreign_key": "author_id",\r
+            "list_method": "list_by_author"\r
+          },\r
+          "comics": {\r
+            "foreign_key": "author_id",\r
+            "list_method": "list_by_author"\r
+          },\r
+          "stories": {\r
+            "foreign_key": "author_id",\r
+            "list_method": "list_by_author"\r
+          },\r
+          "sheets": {\r
+            "foreign_key": "author_id",\r
+            "list_method": "list_by_author"\r
+          },\r
+          "panels": {\r
+            "foreign_key": "author_id",\r
+            "list_method": "list_by_author"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "user_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "name"\r
+        }\r
+      }\r
+    },\r
+    "Artist": "artist",\r
+    "artist": {\r
+      "class_name": "Artist",\r
+      "table_name": "artists",\r
+      "associations": {\r
+        "belongs_to": {},\r
+        "has_many": {\r
+          "resource_pictures": {\r
+            "foreign_key": "artist_id",\r
+            "list_method": "list_by_artist"\r
+          }\r
+        },\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "author_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      },\r
+      "select": {\r
+        "method": "list",\r
+        "caption": {\r
+          "type": "column",\r
+          "name": "name"\r
+        }\r
+      }\r
+    },\r
+    "SystemPicture": "system_picture",\r
+    "system_picture": {\r
+      "class_name": "SystemPicture",\r
+      "table_name": "system_pictures",\r
+      "associations": {\r
+        "belongs_to": {},\r
+        "has_many": {},\r
+        "has_one": {}\r
+      },\r
+      "attributes": {\r
+        "id": {\r
+          "type": "number",\r
+          "primary_key": 1,\r
+          "rules": {\r
+            "number": true\r
+          }\r
+        },\r
+        "ext": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "width": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "height": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "filesize": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "md5": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "created_at": {\r
+          "type": "datetime"\r
+        },\r
+        "updated_at": {\r
+          "type": "datetime"\r
+        }\r
+      }\r
     }\r
+  }\r
 }
\ No newline at end of file