public function specification($pattern = 'html', $value = '', $attributes = [], $contract = [])
    {
        if (!is_array($contract)) {
            return;
        }

        // create the root specification element.
        $this->appendChild(
                $this->create($pattern, $value, $attributes, $contract)
        );

        return $this;
    }
public function specification($pattern = 'html', $value = '', $attributes = [], $contract = [])
    {
        if (!is_array($contract)) {
            return;
        }

        // create the root specification element.
        $this->appendChild(
                $this->create($pattern, $value, $attributes, $contract)
        );

        return $this;
    }
public function specification ( $ pattern = 'html' , $ value = '' , $ attributes = [ ] , $ contract = [ ] ) { if ( ! is_array ( $ contract ) ) { return ; } // create the root specification element.
 $ this -> appendChild ( $ this -> create ( $ pattern , $ value , $ attributes , $ contract ) ) ; return $ this ; }
Document specification pattern.

This method is an extension of the create method but for building
structures.

Experiment note signature will change

@param string $pattern    Html Xml structure pattern.
@param string $value      Pattern value.
@param array  $attributes Pattern attributes.
@param array  $contract	 Pattern children recursion.

@return FabricationEngine
Document specification pattern .