diff --git a/src/main/java/li/cil/oc/api/component/package-info.java b/src/main/java/li/cil/oc/api/component/package-info.java
index 16a4732ac..4de70a1bc 100644
--- a/src/main/java/li/cil/oc/api/component/package-info.java
+++ b/src/main/java/li/cil/oc/api/component/package-info.java
@@ -1,8 +1,12 @@
/**
- * This package contains component specific interfaces.
+ * This package provides interfaces to allow interacting with some components.
*
- * These are implemented by some of the environments created by item drivers
- * for built-in items, which allows for them to be re-used by third-party mods
- * without having to access the internals of OpenComputers.
+ * These interfaces allow more specific interaction with some of OpenComputers'
+ * components, which would otherwise require reflection or linking against the
+ * mod itself.
*/
+@cpw.mods.fml.common.API(
+ owner = "OpenComputers|Core",
+ provides = "OpenComputersAPI|Component",
+ apiVersion = "3.0.0")
package li.cil.oc.api.component;
\ No newline at end of file
diff --git a/src/main/java/li/cil/oc/api/driver/Processor.java b/src/main/java/li/cil/oc/api/driver/Processor.java
index 60bca3e37..8b12ea125 100644
--- a/src/main/java/li/cil/oc/api/driver/Processor.java
+++ b/src/main/java/li/cil/oc/api/driver/Processor.java
@@ -1,5 +1,6 @@
package li.cil.oc.api.driver;
+import li.cil.oc.api.machine.Architecture;
import net.minecraft.item.ItemStack;
/**
@@ -19,4 +20,16 @@ public interface Processor extends Item {
* @return the number of additionally supported components.
*/
int supportedComponents(ItemStack stack);
+
+ /**
+ * The architecture of this CPU.
+ *
+ * This usually controls which architecture is created for a machine the
+ * CPU is installed in (this is true for all computers built into OC, such
+ * as computer cases, server racks and robots, it my not be true for third-
+ * party computers).
+ *
+ * @return the type of this CPU's architecture.
+ */
+ Class extends Architecture> architecture();
}
diff --git a/src/main/java/li/cil/oc/api/driver/package-info.java b/src/main/java/li/cil/oc/api/driver/package-info.java
index 9dcdc933d..c33483a89 100644
--- a/src/main/java/li/cil/oc/api/driver/package-info.java
+++ b/src/main/java/li/cil/oc/api/driver/package-info.java
@@ -4,4 +4,8 @@
* Drivers are used to add items and third party blocks to the internal network,
* which is mostly used to make components wrapping them available to computers.
*/
+@cpw.mods.fml.common.API(
+ owner = "OpenComputers|Core",
+ provides = "OpenComputersAPI|Driver",
+ apiVersion = "3.0.0")
package li.cil.oc.api.driver;
\ No newline at end of file
diff --git a/src/main/java/li/cil/oc/api/event/package-info.java b/src/main/java/li/cil/oc/api/event/package-info.java
new file mode 100644
index 000000000..51cc4aa3a
--- /dev/null
+++ b/src/main/java/li/cil/oc/api/event/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * Events dispatched by OpenComputers to allow other mods to hook into some
+ * of its functionality.
+ */
+@cpw.mods.fml.common.API(
+ owner = "OpenComputers|Core",
+ provides = "OpenComputersAPI|Event",
+ apiVersion = "3.0.0")
+package li.cil.oc.api.event;
\ No newline at end of file
diff --git a/src/main/java/li/cil/oc/api/fs/package-info.java b/src/main/java/li/cil/oc/api/fs/package-info.java
index 1a3d776d0..e72369faa 100644
--- a/src/main/java/li/cil/oc/api/fs/package-info.java
+++ b/src/main/java/li/cil/oc/api/fs/package-info.java
@@ -13,4 +13,8 @@
* that can be added as component nodes to the network, so they can be used
* from computers).
*/
+@cpw.mods.fml.common.API(
+ owner = "OpenComputers|Core",
+ provides = "OpenComputersAPI|FileSystem",
+ apiVersion = "3.0.0")
package li.cil.oc.api.fs;
\ No newline at end of file
diff --git a/src/main/java/li/cil/oc/api/machine/package-info.java b/src/main/java/li/cil/oc/api/machine/package-info.java
index adc4883cb..d59bea436 100644
--- a/src/main/java/li/cil/oc/api/machine/package-info.java
+++ b/src/main/java/li/cil/oc/api/machine/package-info.java
@@ -16,4 +16,8 @@
* implemented, but merely to allow accessing some mod internals in a regulated
* fashion, such as {@link li.cil.oc.api.machine.Robot}.
*/
+@cpw.mods.fml.common.API(
+ owner = "OpenComputers|Core",
+ provides = "OpenComputersAPI|Machine",
+ apiVersion = "3.0.0")
package li.cil.oc.api.machine;
\ No newline at end of file
diff --git a/src/main/java/li/cil/oc/api/network/Arguments.java b/src/main/java/li/cil/oc/api/network/Arguments.java
index d316a2038..c53fccfcc 100644
--- a/src/main/java/li/cil/oc/api/network/Arguments.java
+++ b/src/main/java/li/cil/oc/api/network/Arguments.java
@@ -117,6 +117,108 @@ public interface Arguments extends Iterable