///////////////////////////////////////////////////////////////
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
///////////////////////////////////////////////////////////////

[[reference-documentation,Reference Manual]]
= Apache Zest™ v{revnumber} Reference Manual =

:zest-version: {revnumber}
:zest-buildnumber: {revnumber}
:zest-git-tag: {gitversion}


:leveloffset: 2

include:../../../core/api/src/docs/reference/api.txt[]

include:../../../core/spi/src/docs/reference/spi.txt[]

include:../../../core/bootstrap/src/docs/reference/bootstrap.txt[]

include:../../../core/testsupport/src/docs/reference/testsupport.txt[]
