- parameter/setting default from manifest
    ==> BRANCH[feature_default_parameters],
    ==> PERSON[Steven or Nico]
    ==> PROPOSAL(1)
    - current bug
    - proposal 1: parameter/default/$name (for optional ones)
        - new way
        - catches --state absent|present
        - needs changes of types
        - also possible for explorer
        - support for it in core?
            - handling of ${o} $o "$o" ?
            - handling which variables?
            - introduction of "templating language"
                - aka macros
                - possible problems:
                    - inconsistency
                    - redoing shell functionality
                    - raising expectations for more templating from users
                - possible benefit
                    - no need for eval
                    - once in core, not everytime in type
                        - OTOH: one extra word. 
                        - a=$(cat $__object/parameter/name) vs. $(eval $(cat $__object/parameter/name))
        - only possible for static defaults
            - --name overrides name not possible vs. object_id
                - Is this the only case????
                    - if yes: don't care.
                - possible solution:
                    - echo '/$__object_id' > typename/parameter/default/name
                    - eval $(cat $__object/parameter/name)
                        - probably allows code injection
                            - is possible anyway???
                            - $(cat /etc/shadow)
                        - other eval side effects???
                            - none: go for it
                            - some: have headache
                            - many: don't do
    - proposal 2: 2 dbs (user input vs. stuff changable by type)
        - explicit 2nd db [parameter_user and parameter/]
        - not very clean (both agreed)
    - proposal 3: parameter are read-only
        - breaks current types (in core probably elsewhere)
        - can't enforce, but user is on his own => breaks, her problem
        + clean seperation between core and type (nico)
            - parameter belongs to type not core (steven)
    - proposal 4: core ignores changes in parameter/* of object
        - implicit 2nd db [see automagic below]
        - steven+++
        - does not work with divergent emulator not being in core
            - because emulators primary db __is__ fs.

1 manifest:

__foo bar == emulator
echo present > $__global/object/__foo/bar/parameter/state

# fails
__foo bar == emulator

! automagic / filesystem
    ! fsproperty:
        - kill, write explicitly to disk
    ==> BRANCH[cleanup_fsproperty]
    ==> PERSON[Steven]
    ==> PROPOSAL(just cleanup)

    - implicit/automatic writes/read to fs
        - explicit interfaces are better then implicit
        - same problems as in cdist 1.x to 2.x move! (environment!)
    - format on disk should not change/dictate code flow
        - degrade python to shell (nico++! steven--)
            - user should not care about python, ruby, .net or ASM implementation (steven++ nico++)

    ? proposal 1: diverge emulator / core
        - emulator verifies input
        - emulator writes to fs
        - core reads/syncs from/to fs before passing control to user

    ? proposal 2: emulator is dumb and passes data to core
        - core creates objects
        - no fs involved
        - core reads/syncs from/to fs before passing control to user
        - passing:
            - full objects via pickle
            - parameters only
            - how???
                - unix socket?
                    - not everywhere possible?
                - tcp / ip
                    - not everywhere possible
                        - chroot / local only
                - rfc 1149
                    - not everywhere possible
                        - missing avian carriers
                - 0mq
                    - not everywhere possible
                        - not installed
                - shm (ipcs and friends)
                    - not everywhere possible
                        - no /dev/shm, different libraries? cleanups needed...
                - what speaks against FS?
                    - emulator_input/.../

                - nico: to fancy probably

! boolean implementation
    ==> BRANCH[feature_boolean_parameter]
    ==> PERSON[Steven]
    - nico: 
        - parameters/boolean: document
        - argparse changes (consider parameters/boolean)
            - create 
    - can be implemented with changes in emulator
        - use store_true, del if false => never seen by core
    - INDEPENDENT INDEPENDT OF FS.PROPERTIES!!111111!

- emulator:
    - how much integrated into core
        - also: using CdistObject????
    - dependency on filesystem: good (nico) | bad (steven)

- singleton / support without object_id
    - not discussed

- __apt_ppa:
    ==> BRANCH[bugfix_do_not_change_state_in_manifest]
    ==> PERSON[Nico]

- logging divergent between emulator / core
    - no problem (nico)
    - may be helpful (steven)
