views:
  - object view
    - shows the currently active root object
    - highlighting of cursor, inner highlight, outer highlight
    - if inner highlight and outer highlight completely overlaps, only show outer
    - get rid of all offsets
    - better scrolling (blocked)
  - hex view
    - has hex offsets to the side
    - fills out all space available to it
      - up to groups of 4 bytes?
      - if so, centered?
    - highlighting of cursor, inner highlight, outer highlight
    - if inner highlight and outer highlight completely overlaps, only show outer
    - better scrolling (blocked)
  - info view
    - shows info about what's on screen right now
    - cursor:
      - position
      - interpretation count
        - [press i to change]
    - outer highlight:
      - type
      - range
      - parent count
        - [press x to follow]
    - inner highlight (only of relevant):
      - type
        - [press enter to follow]
      - range
    - info is shown using the same color scheme as elsewhere
  - active keys view
    - shows all active keys
    - might not show keys that are shown in the info view
  - remove interpretations view (replaced with interpretations popup)

popups:
  - tree popup
    - uses fold-out for children (for usability and to avoid exponential explosion)
    - previews all objects and can go to them
  - interpretations popup
  - types popup
    - shows all types used in the file
    - uses fold-out to show all instances of those types
    - previews those instances and can go to them

keys:
  - navigation:
    - arrows
      - in hex view it is obvious
      - in object view only up, down and left to something
    - ctrl-arrows
      - in hex ???
      - in object view only left and right. Does not decend into objects
    - pageup/down
    - home/end
    - enter: follow offset
  - bookmarks
    - save bookmark
    - go to bookmark
  - tab to switch active view
  - popups:
    - o: open tree popup
    - t: open types popup
    - i: go to different interpretation
    - x: go to parent(s)
      - might have mini-popup with preview
    - g: go to byte
      - popup to enter address
      - follows with interpretations popup if relevant

ux:
  - follow initial root reference
  - handle bad data
  - vtable children names

misc:
  - fix TODOs

open questions:
  - should object view show nothing if cursor is outside object?
  - should we push the view-state if we leave an object to go into padding/a different object?
