 
   null
 
+# Send create message for a subkey.
+#
+send_create_subkey = ( thingy, subkey ) ->
+  typename  = thingy.typename()
+  id        = thingy.id()
+  type_data = @_.per_type[ typename ]
+
+  attr_keys = type_data.subkeys[ subkey ]
+  key   = subkey_key( id, subkey )
+  value = only_keys( thingy.get( attr_keys... ), attr_keys )
+  if subkey == '_'
+    value =
+      typename: typename
+      attrs: value
+  @_.dictionary.create( @_.domain, key, value )
+
+
 # Send create message for a thingy.
 #
 # @param [thingy] thingy Thingy to send create for.

          @_.on_error( "Missing everything for thingy: #{id}" )
        else
          if @_.ready
            @_.make_thingy( info.typename, id, info.attrs, false )
          else
            @_.partials_to_create[ id ] = true
        delete @_.partials[ id ]
    else if key[0] != '_'
      # Extract id and subkey from key.
      [ id, subkey ] = split_key( key )
      attrs = value
      @_.partials[ id ] ?= {}
      if subkey == '_'
        if ! value.typename?
          @_.on_error( "Cannot understand basekey #{key}.  No typename." )


  @_.dictionary.batch =>
    for subkey, attr_keys of type_data.subkeys
      @_.send_create_subkey( thingy, subkey )
    # %create tells others to create the thingy.
    @_.dictionary.create( @_.domain, '%create', id )

